Problème simple avec boucle mysql_fetch_row

Petit nouveau ! | 9 Messages

14 mars 2010, 23:43

Bonjour,

je bloque devant un problème qui doit pourtant être très simple :

Voila, j'effectue un requête sql toute simple et je souhaiterai que les resultats du champ 1 s'affichent en haut des 3 colonnes du tableau et que les resultats du champ 2 s'affichent sur les 3 colonnes de la ligne d'en dessous.

Pour résumer je souhaite ca :

<TR>
<TH> champ1 </TH>
<TH> champ1 </TH>
<TH> champ1 </TH>
</TR>
<TR>
<TH> champ2 </TH>
<TD>champ2 </TD>
<TD> champ2 </TD>
</TR>

Le problème est que ma boucle affichent 3 fois le même résultat dans chaque colonne car tant que la boucle n'est pas finie, il ne passe pas au résultat suivant. Voici mon code et merci d'avance !

Code : Tout sélectionner

$query = "SELECT champ1,champ2, FROM table1"; $result = mysql_query($query); while($row = mysql_fetch_row($result)) { echo " <TR> <TH> ".$row["0"]." </TH> <TH> ".$row["0"]." </TH> <TH> ".$row["0"]." </TH> </TR> <TR> <TH> ".$row["1"]." </TH> <TD> ".$row["1"]." </TD> <TD> ".$row["1"]." </TD> </TR> "; }

Mammouth du PHP | 672 Messages

15 mars 2010, 12:53

En pseudo-code, voiçi ce que tu demandes :

Code : Tout sélectionner

$query = "SELECT champ1,champ2, FROM table1"; $result = Résultat de la requête $query; TANT QUE j'ai une ligne de résultat Afficher "Champ1 Champ1 Champ1" Afficher "Champ2 Champ2 Champ2"
C'est un peu logique qu'il affiche 3 fois tes champs :P
Si tu veux qu'il n'affiche qu'une fois chaque colonne, il faut lui demander de les afficher une seule fois !
$query = "SELECT champ1,champ2, FROM table1";
$result = mysql_query($query);
while($row = mysql_fetch_row($result)) {
      echo "$row["0"].$row["1"];
}

Petit nouveau ! | 9 Messages

15 mars 2010, 16:01

Salut et merci pour la réponse mais ca revient au même.

En fait le problème est php et html.

En fait je souhaite exactement avoir ca :

Code : Tout sélectionner

$query = "SELECT champ1,champ2, FROM table1"; $result = Résultat de la requête $query; TANT QUE j'ai une ligne de résultat Afficher "Champ1(1ere réponse) Champ1(2eme réponse) Champ1(3eme réponse)" Afficher "Champ2(1ere réponse) Champ2(2eme réponse) Champ2(3eme réponse)" Afficher "Champ1(4ere réponse) Champ1(5eme réponse) Champ1(6eme réponse)" Afficher "Champ2(4ere réponse) Champ2(5eme réponse) Champ2(6eme réponse)" Afficher "Champ1(7ere réponse) Champ1(8eme réponse) Champ1(9eme réponse)" Afficher "Champ2(7ere réponse) Champ2(8eme réponse) Champ2(9eme réponse)" ET ainsi de suite
La difficulté vient du fait qu'à la premiere boucle, je souhaite afficher mon champ1 puis mon champ2 en dessous et qu'à la boucle suivante, le champ1 et champ 2 soit affiché non pas en dessous mais a coté comme décrit dans le code.

Petit nouveau ! | 9 Messages

15 mars 2010, 23:47

Personne ? :(

ViPHP
ViPHP | 1024 Messages

16 mars 2010, 00:04

Tu fais les requêtes 3 par 3 et tu affiches les résultats.

A+

Pascal

Petit nouveau ! | 9 Messages

16 mars 2010, 00:48

Ça fonctionne, merci a toi !

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

16 mars 2010, 14:46

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute