Afficher requete SQL sur 2 colonnes

Résolu
Bonjour,

je debute en php et j'essaye d'afficher le resultat d'une requete SQL sur 2 colonnes d'un tableau, je pense avoir saisi le principe,
j'ai une variable qui compte le nombre de lignes dans le tableau, quand $i est superieur a la moitie du nombre de ligne, je cree une nouvelle cellule dans le tableau,

Mais je n'arrive toujours pas a l'appliquer, voici le code que j'utilise:

<table>
<tr>
<td>
<?php
$retour = mysql_query('SELECT COUNT(*) AS nb_album FROM album');
$donnees = mysql_fetch_array($retour);
$nb = $donnees['nb_album']/2;

$return = mysql_query('SELECT * FROM album ORDER BY artist');
while ($data = mysql_fetch_array($return))
{
for($i=1;$i<=$nb;$i++)
{
if($i>$nb) echo '</td><td>';
?>
<ul>
<li><a href="<?php echo $data['artist'];?>"><?php echo $data['artist'];?></a></li>
</ul>
<?php
}
}
?>
</td>
</tr>
</table>

Merci d'avance pour votre aide
Configuration: Windows Vista
Firefox 3.5.3

5 réponses

  1. Hum. je ne vois pas l'intérêt de la boucle for.

    Par contre j'ai fait 2 erreurs d'étourderie...

    essaye avec ça?:

    <table>
    <tr>
    <td>
    <ul>
    <?php
    $i=0;
    $return = mysql_query('SELECT * FROM album ORDER BY artist');
    $nb = ceil(mysql_num_rows($return )/2);
    while ($data = mysql_fetch_array($return))
    {
        if ($i++ == $nb) { ?></ul></td><td><ul><?php }
        ?><li><a href="<?php echo $data['artist'];?>"><?php echo $data['artist'];?></a></li><?php 
    }
    ?>
    </ul>
    </td>
    </tr>
    </table> 

    1. S'il y a des doublons, tu peux faire un 'SELECT DISTINCT * FROM album ORDER BY artist'

      il y a peut-être à modifier la ligne $nb = ceil(mysql_num_rows($return )/2); pour tomber pile à la moitié. comme par exemple un $nb = ceil(mysql_num_rows($return )/2) + 1 ;
      1. nikel, ca marche parfaitement, mais la liste n'est pas vraiment divisee en deux, c'est peut etre a cause des doublons
        merci a toi :)
        1. merci d'avoir repondu M@dien, j'ai essaye avec ta methode mais ca ne marche pas, le tableau ne s'affiche plus.
          Je crois qu'il manque la boucle For dans le code, ou suis-je sense la placer?
          1. Bonjour,

            je te propose ça:
            <table>
            <tr>
            <td>
            <ul>
            <?php
            $retour = mysql_query('SELECT COUNT(*) AS nb_album FROM album');
            $donnees = mysql_fetch_array($retour);
            $nb = ceil($donnees['nb_album']/2);
            $i=0;
            
            $return = mysql_query('SELECT * FROM album ORDER BY artist');
            while ($data = mysql_fetch_array($return))
            {
                if ($i = $nb) { echo '</ul></td><td><ul>'; }
                ?><li><a href="<?php echo $data['artist'];?>"><?php echo $data['artist'];?></a></li><?php 
            }
            ?>
            </ul>
            </td>
            </tr>
            </table>