Construction d'un tableau dans une boucle while

Construction d'un tableau dans une boucle while - PHP - Programmation

Marsh Posté le 09-08-2005 à 18:02:46    

Bonjour,
 
j'ai un petit souci dans la construction d'un tableau dynamique. En gros je veux lister les chansons d'un album sur deux colonnes : dans la première colonne les n premières chansons et dans la seconde les n dernières sachant que le nombre de chansons est variable d'un album à l'autre (pour le récupérer pas de problème avec un count)
 
 
dans le cas d'un tableau à une seule colonne, c'est simple le script simplifié donne à peu près ceci :
 
$query = "SELECT * FROM chanson";
$result = mysql_query($query) or die("Erreur Sql" );
$nb_result = mysql_num_rows($result);
 
while ($row = mysql_fetch_array($result)) {
 
echo "<tr>";
echo "<td><i>$row[tit_cha]</i></td>";
echo "</tr>";
 
}
 
mais je sèche pour le faire à deux colonnes sachant que dans la deuxième colonne je veux les dernières chansons de l'album comme dans l'exemple ci-dessous :
 
en ligne :
 
tit1
tit2
tit3
tit4
tit5
tit6
tit7
 
en colonne :
 
tit1 ------ tit5
tit2 ------ tit6
tit3 ------ tit7
tit4
 
 
Merci d'avance si quelqu'un a une idée

Reply

Marsh Posté le 09-08-2005 à 18:02:46   

Reply

Marsh Posté le 09-08-2005 à 18:40:14    


Dans ce cas pouruqoi ne pas jsute faire deux case? 1 par colonne.
Tu aurais alors ce que tu veux, suffit de faire sauté une ligne entre chaque, ou de mettre un <li> et c'est pas compliqué a faire.
 

Reply

Marsh Posté le 09-08-2005 à 19:06:14    

mon problème c'est la "lecture" séquentielle du while
 
il lit tit1 pour le placer dans la ligne 1
puis il lit tit2 pour le placer dans la ligne 2
 
etc ...
 
et quand il arrive à tit5 qui doit aller dans la 2ème colonne de la ligne 1 , cette ligne a déjà été "écrite"
 
j'ai l'impression qu'il faut construire un tableau à deux colonnes dans le while du style array(1,1)=tit1 array(1,2)=tit5 array(2,1)=tit2 etc ....
 
et ensuite en fin de while refaire une boucle avec
echo"<tr><td>array(1,1)</td><td>array(1,2)</td></tr>";
echo"<tr><td>array(2,1)</td><td>array(2,2)</td></tr>";
etc ...
 
j'ai l'impression qu'il y a plus simple mais je sèche

Reply

Marsh Posté le 09-08-2005 à 19:16:05    

Tu n'a pas compris ce que j'ai dit.
Oubli l'idée de faire une case par résultat, c'est surement possible, mais compliqué a souhait.
Dans UNE case, tu met tes premier résultat, et ensuite, quand tu veux changé de colonne, tu met le reste dans l'autre.
 
en html pur le résultat donne :

Code :
  1. <table>
  2. <td>
  3. Titre1
  4. <br/>
  5. Titre2
  6. <br/>
  7. Titre3
  8. <br/>
  9. Titre4
  10. </td>
  11. <td>
  12. Titre5
  13. <br/>
  14. Titre6
  15. <br/>
  16. Titre7
  17. </td>
  18. </tr>
  19. </table>


 
 
Apres a toi de mettre en forme comme tu veux.

Reply

Marsh Posté le 09-08-2005 à 19:25:26    

eh oui effectivement c'est impecc et très simple  
 
et bien merci beaucoup
 
 
et bonne soirée

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed