[SQL] Requête "mouvante"
Résolu
Darshu
Messages postés
303
Statut
Membre
-
Darshu Messages postés 303 Statut Membre -
Darshu Messages postés 303 Statut Membre -
Bonjour, voila mon problème : je code un tableau, avec la possibilité pour n'importe qui de le modifier. Pour faire simple, la table se présente comme suit :
- champ index (clé primaire), auto incrément
- champ num (saisi par l'utilisateur, permet d'afficher les données dans l'ordre qu'il choisit)
- champ catégorie (texte simple)
- champ texte, qui comporte des ; comme séparateur de ligne
- champ n1 qui compte le nombre de lignes
- champ n2 qui donne pour chaque catégorie le nombre de lignes
Maintenant en un peu plus clair : dans une catégorie, on lui affecte le numéro qu'on veut, et dans le champ texte qui suit il y a autant de lignes que l'on veut, chacune étant séparée par un point virgule. Le champ num permet juste, si on rajoute à la fin de la table un nouvel enregistrement, et qu'on veut que cette catégorie soit affichée en deuxième position, de spécifier le numéro d'affichage.
J'ai tout le code pour séparer les différentes lignes d'une même catégorie, grâce à preg_match_all. Ce que je voudrais faire maintenant, c'est, à partir de la requête
sélectionner la ième ligne de résultat. Bien sur, il y aurait la solution d'incrémenter une variable dans une boucle while($row = mysql_fetch_row($query)) et de faire if ($compteur == $i) mais c'est pas terrible ...
L'idée est que le tableau peut, à la fin, être n'importe comment dans la base de données (point de vue ordre) mais tout en garantissant toujours un affichage correct. Je sais pas si c'est très clair mais bon, si quelqu'un a une idée un peut plus élégante que celle proposée au dessus ... Merci !
- champ index (clé primaire), auto incrément
- champ num (saisi par l'utilisateur, permet d'afficher les données dans l'ordre qu'il choisit)
- champ catégorie (texte simple)
- champ texte, qui comporte des ; comme séparateur de ligne
- champ n1 qui compte le nombre de lignes
- champ n2 qui donne pour chaque catégorie le nombre de lignes
Maintenant en un peu plus clair : dans une catégorie, on lui affecte le numéro qu'on veut, et dans le champ texte qui suit il y a autant de lignes que l'on veut, chacune étant séparée par un point virgule. Le champ num permet juste, si on rajoute à la fin de la table un nouvel enregistrement, et qu'on veut que cette catégorie soit affichée en deuxième position, de spécifier le numéro d'affichage.
J'ai tout le code pour séparer les différentes lignes d'une même catégorie, grâce à preg_match_all. Ce que je voudrais faire maintenant, c'est, à partir de la requête
SELECT * FROM `table` ORDER BY `num` ASC
sélectionner la ième ligne de résultat. Bien sur, il y aurait la solution d'incrémenter une variable dans une boucle while($row = mysql_fetch_row($query)) et de faire if ($compteur == $i) mais c'est pas terrible ...
L'idée est que le tableau peut, à la fin, être n'importe comment dans la base de données (point de vue ordre) mais tout en garantissant toujours un affichage correct. Je sais pas si c'est très clair mais bon, si quelqu'un a une idée un peut plus élégante que celle proposée au dessus ... Merci !
A voir également:
- [SQL] Requête "mouvante"
- Logiciel sql - Télécharger - Bases de données
- Jointure sql ✓ - Forum MySQL
- Sql (+) - Forum Programmation
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices