Requete

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Requete

Message le Mer Sep 14, 2005 12:57

Bonjour,

Il y a une requete qui me pose un soucis.

Mon code est le suivant :

Code: Tout sélectionner
$result = mysql_query("SELECT Famille, Latin, Vernaculaire, Protection FROM Protection WHERE Categorie='$Categorie' ORDER BY Famille");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
while ($row = mysql_fetch_assoc($result)) {
extract($row);
   echo '<div class="protection1">'.$Famille.'</div>';
   echo '<div class="protection2">'.$Latin.'</div>';
   echo '<div class="protection3">'.$Vernaculaire.'</div>';
   echo '<div class="protection4">'.$Protection.'</div>';
   echo '<br /><br />';
}


J'aimerais qu'il m'affiche une seule fois la famille et pour cette famille, qu'ils affichent tous les enregistrements , puis la famille suivante avec tout ses enregistrements... Au lieu d'afficher autant de fois la famille qu'il y a d'enregistrements.
J'ai pensé à mettre GROUP BY dans ma requete mais la méthode d'affichage n'est plus bonne.

Quelqu'un aurait une idée ?

Merci beaucoup


dmathieu
Modérateur
Modérateur
 
Messages: 7245
Inscription: 9 Jan 2004

Message le Mer Sep 14, 2005 13:05

un group by, je ne vois que cela.
qu'est-ce qui change dans l'affichage lorsque tu mets le group by ??


cyberdesign
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 22
Inscription: 4 Déc 2004

Message le Mer Sep 14, 2005 13:07

Bonjour,

Tu peux faire cela:
Code: Tout sélectionner
$result = mysql_query("SELECT Famille, Latin, Vernaculaire, Protection FROM Protection WHERE Categorie='$Categorie' ORDER BY Famille");
if (!$result) {
   echo 'Impossible d\'exécuter la requête : ' . mysql_error();
   exit;
}
$OldFamille = '';
while ($row = mysql_fetch_assoc($result)) {
extract($row);
   if($Famille != $OldFamille)
      echo '<div class="protection1">'.$Famille.'</div>';
   else
      echo '<div class="protection1">&nbsp;</div>';

   echo '<div class="protection2">'.$Latin.'</div>';
   echo '<div class="protection3">'.$Vernaculaire.'</div>';
   echo '<div class="protection4">'.$Protection.'</div>';
   echo '<br /><br />';
}


Est ce que ça résoud ton problème ?

Cordialement,

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Message le Mer Sep 14, 2005 22:34

Non ça marche toujours pas.
tant pis je crois que je vais laisser tomber.

merci quand même

quand je mets group by famille, il m'affiche qu'un seul résultat par famille.


correiaj
WRInaute passionné
WRInaute passionné
 
Messages: 1110
Inscription: 25 Avr 2005

Message le Jeu Sep 15, 2005 6:38

en fait, je pense que ca peut aider:

il faut faire un tableau sur tes noms de familles, avec offset.
Puis une boucle while: tant que famille[x] vrai
puis dans cette boucle, la requete sql avec Where famille=
Et une boucle while pour afficher toutes les rangées.

nodom
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 316
Inscription: 15 Jan 2005

Message le Jeu Sep 15, 2005 10:30

le code de cyberdesign
est la solution prenez le vite :wink:

spidetra
WRInaute passionné
WRInaute passionné
 
Messages: 1500
Inscription: 7 Juil 2003

Message le Jeu Sep 15, 2005 11:52

cyberdesign a oublié de réinitialiser OldFamille au changement de famille dans sa boucle.
C'est un algo vieux comme l'informatique connu sous le nom de "marche en canard". Je ne certifie pas le nom exact de l'algo :)

Code: Tout sélectionner
if($Famille != $OldFamille)
      echo '<div class="protection1">'.$Famille.'</div>';
     $OldFamille = $Famille ;
   else
      echo '<div class="protection1">&nbsp;</div>';
Dernière édition par spidetra le Jeu Sep 15, 2005 13:12, édité 1 fois.

Protanim
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 306
Inscription: 2 Avr 2005

Message le Jeu Sep 15, 2005 12:34

La ça marche merci beaucoup.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités