Page 1 sur 1

Exploitation d'une table

Posté : 12 juin 2011, 06:23
par Invité
Bonjour,

j'ai un petit problème avec l'exploitation des résultats d'un tableau tiré d'une requête du style:
$list = mysql_query("SELECT * FROM bdd WHERE pays='Fr' GROUP BY Fille ORDER BY Mamie DESC, Maman ASC, Fille ASC");

Voilà le type de tableau que j'obtiens, et qui me convient:
Fille1 ==> Fille1.php
Fille2 ==> Fille2.php
Fille3 ==> Fille3.php
Fille4 ==> Fille4.php
...

Maintenant, je souhaiterai faire comprendre à une requête que, quand je suis sur la page "Fille2.php" (par ex), l'afférence suivante est "Fille3"; et donc que, en cliquant sur "Suivant", je dois aller sur la page "Fille3.php" (en espérant avoir été clair!!)
Mais là, j'arrive à rien...

Quelqu'un pourrait m'aider svp (attention, je débute en PHP !!!)
Merci d'avance

Re: Exploitation d'une table

Posté : 12 juin 2011, 10:14
par Ryle
Quel est le critère dans ta base de données qui te permet de savoir qu'après fille1 tu dois aller à fille2 ?

A noter cependant que la commande "group by" doit normalement s'utiliser avec une liste définie de colonnes (donc pas un select *) et comportant au moins une fonction de groupe (count, sum, ...), sans cela, les résultats peuvent s'avérer hasardeux...

Re: Exploitation d'une table

Posté : 12 juin 2011, 12:23
par bubu
Bonjour, et merci pour ta réponse!

J'utilise ici un GROUP BY avec un "SELECT * " car je veux récupérer toutes les infos correspondant à ma requête de listing, le tableau ne montrant (volontairement) qu'une partie des données retenues par cette requête. Je dois avoir de la chance, ce listing correspond exactement à ce que je veux!
J'utilise également GOUP BY car, pour une Fille donnée, j'ai plusieurs entrées/photos (Mamie, Mère et Fille ne sont que des noms illustratifs^^)

Une meilleure idée du tableau en question, obtenu avec
$list = mysql_query("SELECT * FROM bdd WHERE pays='Fr' GROUP BY Fille ORDER BY Mamie DESC, Maman ASC, Fille ASC");
(pour une Mère donnée, les Filles sont ordonnées, et pour une Mamie donnée, les Mères sont ordonnées aussi...)
Mamie: Mere: Fille: Page:
Mamie-C Mere-1 Fille-1 ==> Fille-C11.php
Mamie-C Mere-2 Fille-1 ==> Fille-C21.php
Mamie-C Mere-3 Fille-1 ==> Fille-C31.php
Mamie-C Mere-3 Fille-2 ==> Fille-C32.php
Mamie-B Mere-1 Fille-1 ==> Fille-B11.php
Mamie-B Mere-1 Fille-2 ==> Fille-B12.php
Mamie-B Mere-1 Fille-3 ==> Fille-B13.php
Mamie-B Mere-2 Fille-1 ==> Fille-B12.php
Mamie-A Mere-1 Fille-1 ==> Fille-A11.php
Mamie-A Mere-2 Fille-1 ==> Fille-A21.php
Mamie-A Mere-3 Fille-1 ==> Fille-A31.php
Mamie-A Mere-4 Fille-1 ==> Fille-A41.php
...

Mon problème est que je ne sais pas comment faire le lien entre la page sur laquelle je suis à un instant T(ex: Fille-B13.php) et le résultat de ma liste... Et du coup, comment aller aux pages Previous/Next correspondant à la requête (Fille-B12.php / Fille-B12.php).
Donc:
- le critère indiquant qu'après Fille-B13 c'est Fille-B12: provient de la requête
- le critère permettant d'aller de Fille-B13.php à Fille-B12.php: aucune idée....

J'espère que tu comprends mieux mon soucis ? (qu'est-ce que c'est galère à expliquer clairement^^^^)

Re: Exploitation d'une table

Posté : 15 juin 2011, 10:15
par Invité
aucune idée ?...

Re: Exploitation d'une table

Posté : 15 juin 2011, 11:01
par Dralex76
Salut,
je t'avou que je n'ai jamais été confronté à ce problème. J'ai bien une idée qui me viens mais elle me semble bien complexe pour ta demande... :shock:
Je vais quand même m'exprimer:
Si tu ajoutes un champs "ordre" par exemple dans ta table bdd , cela permettra a chaque recherche utilisateur de distribuer un chiffre aux resultats trouvés, par exemple:
Fille1 ==> Fille1.php ==> 1
Fille2 ==> Fille2.php ==> 2
Fille3 ==> Fille3.php ==>3
Fille4 ==> Fille4.php ==>4

Comme ca cela te permet denvoyer dans l'url le choix de la page grace a cette donnée stocké.
Bien sur il ne faudra pas oublier de supprimer toutes ces valeurs à chaque nouvelle recherche dans quel cas ca naurait plus aucun sens dans la recherche en cours.

Re: Exploitation d'une table

Posté : 15 juin 2011, 23:05
par Invité
Merci pour ta réponse!

Honnêtement, j’étais loin de penser que ma "query" était si galère, pensant plutôt passer à côté du petit détail qui change tout :!:
En fait, pour dépanner, j'avais déjà appliqué ton systeme, et il marche tres bien :wink:
Mais pour rajouter ce champ sur plusieurs centaines d’entrées, c'est plutôt fastidieux...
A moins qu'il existe un moyen d'attribuer un numéro de classement à chacune des entrées, ordonnées suivant le résultat de ma query, et ensuite de faire appel à ces numéros pour Next/Previous ?
Mais là non plus, je vois pas comment faire...