Requete

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Protanim
WRInaute impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

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: 6929
Inscription: Ven Jan 09, 2004 16:21

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
 
Messages: 22
Inscription: Sam Déc 04, 2004 15:52

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 impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

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 accro
WRInaute accro
 
Messages: 1106
Inscription: Lun Avr 25, 2005 22:39

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 impliqué
WRInaute impliqué
 
Messages: 316
Inscription: Sam Jan 15, 2005 17:26

Message le Jeu Sep 15, 2005 10:30

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

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

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 impliqué
WRInaute impliqué
 
Messages: 254
Inscription: Sam Avr 02, 2005 14:00

Message le Jeu Sep 15, 2005 12:34

La ça marche merci beaucoup.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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