Array PHP dans un tableau [Résolu/Fermé]

Signaler
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
-
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
-
Bonjour,

J'aimerai afficher le résultat d'une requête SQL dans un tableau de la manière suivante :

|entrée 1|entrée 2|entrée 3|entrée 4|entrée 5 |
|entrée 6|entrée 7|entrée 8|entrée 9|entrée 10|
|entrée 11|entrée 12|entrée 13|entrée 14|entrée 15|

Etc etc

Seulement, dans mon code, je ne sais pas comment ajouter un </tr><tr> toutes les 5 entrées pour lui dire de faire une nouvelle ligne ...

Quelqu'un aurait-il une idée ?

Merci d'avance
Cordialement
a70m

5 réponses


As-tu penser au modulo ?
Avec un compteur que tu incrément à chaque tour de boucle, quand ton compteur vaudra un multiple de 5, le modulo retournera 0.
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
214
Merci de ta réponse :)
J'ai effectivement pensé au modulo avec un for() avec $i par exemple
Mais je ne sais pas trop comment lui dire d'afficher "</tr><tr>" quand $i%5==0 ...

Cordialement
if($i % 5 == 0){
echo "</tr><tr>";
}

que tu place dans boucle évidemment.
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
214
Tout simplement !
J'essaye, et je te tiens au courant :)
Merci à toi
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
214
Ta solution est la bonne, mais je dois être con !

Mon code est structuré de la manière suivante :
<table>
<tr>
<?php
REQUETE SQL
while
{
?>
<td><?php echo $id ; ?></td>
<?php
}
?>
</tr>
</table>


Mais je ne sais pas où placer mon for :/

J'ai essayé ça, mais ça ne marche pas :/

<table>
<tr>
<?php
REQUETE SQL
while
{
for($i=1;$i<=$nbID;$i++)
{
?>
<td><?php echo $id ; ?></td>
<?php
if($i%5==0)
{
echo'</tr><tr>';
}
}
}
?>
</tr>
</table>


Merci de ta patience
Moi, je ferais cela comme ça :

<?php
$query = "Ta requête SQL";
$result=mysql_query($query);

echo "<table><tr>";

for($i=1;$data=mysql_fetch_array($result);$i++)
{
if($i % 5 == 0){
echo "</tr><tr>";
}
echo "<td>data["$id"]</td>";

}
echo "</tr></table>";
?>

Il faut juste changer la requête SQL.
Je ne l'ai pas testé, mais ça devrait marcher.
Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
214
J'ai tout mis à ma sauce, en adaptant à mon code quoi, mais il n'affiche plus rien :/
Je savais que ça serait une prise de tête cette idée :(

même en bidouillant, je ne trouve pas :/.
Messages postés
137
Date d'inscription
lundi 22 mars 2010
Statut
Contributeur
Dernière intervention
7 mai 2013
29
Salut. Essaye de garder le "while" en ajoutant un compteur.
Un truc dans le genre :

$i = 0;
while( $data = mysql_fetch_array($result) )  {
    if( $i % 5 == 0 ) {
        echo '</tr><tr>';
    }
    echo '<td>' . $data['row'] . '</td>';
    $i++;
}

Messages postés
2733
Date d'inscription
jeudi 21 mai 2009
Statut
Contributeur
Dernière intervention
2 février 2014
214
Une idée de ce type m'avait éffleurée l'esprit, et je savais qu'il y'avait plus simple que le for() !
Vincebzh, merci à toi, tu viens de résoudre mon problème !

Mais merci aussi à pyl159 pour ton aide !
J'espère que j'aurai l'occasion de pouvoir vous aider prochainement sur le forum.

Bien à vous 2
Cordialement
a70m