Affichage php/mysql sur 2 colones

Bonjour à tous, juste une petite question,
je souhaite afficher mes résultat sur 2 colones, comment faire svp,

Voici ma source

<?php
if(isset($_GET['lettre']))
{
$lettre=$_GET['lettre'];
}else{
$lettre='a';
}
$totalid=mysql_query("SELECT * from ".T_ARTISTES." where nom LIKE '$lettre%'");
$total=0;
$parpage=20;
while ($donnees = mysql_fetch_array($totalid))
{
$total++;
}
if(isset($_GET['page']))
$page=$_GET['page'];
else
$page=0;

$commaff= mysql_query("SELECT * from ".T_ARTISTES." where nom LIKE '$lettre%' ORDER BY nom LIMIT $page,$parpage ");
$repon = mysql_num_rows($commaff);
if(!$repon) {
echo'
<div align="center"><strong>Désolé, Aucun artiste</div>
';
}
while ($donnees = mysql_fetch_array($commaff))
{
$max=150;
$chaine=$donnees['description'];
if(strlen($chaine)>=$max)
{
$chaine=substr($chaine,0,$max);
$espace=strrpos($chaine," ");
if($espace)
$chaine=substr($chaine,0,$espace);
$chaine .= ' ...';
}
$numero=$donnees[0];

echo'<table width="630" border="0" cellpadding="5" cellspacing="0" >
<tr>
<td width="4%" valign="top"><table width="45" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="45" valign="top" > <div ><a href="biographiemusique.php?numero='.$numero.'"><img src="images/artistes/'.$donnees['photo2'].'" class="borderimgindex" width="45" height="35"></a> </div></td>
</tr>
</table></td>
<td width="96%" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="3%" valign="middle"><strong><img src="images/puce.gif" width="14" height="14"><a href="biographiemusique.php?numero='.$numero.'" class="legal_title_12"></a></strong></td>
<td width="97%" valign="middle"><strong><a href="biographiemusique.php?numero='.$numero.'" class="legal_title_12"> '.stripslashes ($donnees['nom']).'</a></strong></td>
</tr>
<tr>
<td colspan="2"><div align="left"><span class="biographie">'.stripslashes ($chaine).'</span></div></td>
</tr>
</table>
</td>
</tr>
</table>
';

}
?>
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Bonsoir,

    je n'ai pas d'exemple, tu t'inspires de ce que je t'ai fait.
    1. Merci beaucoup pour ta réponse, pourrais tu me donner un exemple stp, j'ai du mal a comprend,

      Merci encore
      1. Bonjour,

        juste qqs remarques:

        if(!$repon) {

        mets plutôt:

        if($repon==0) {


        ensuite tu mets ta balise <table dans ta boucle while, tu vas donc creer autant de tables que de lignes de résultat, est ce que tu voulait ?

        pour afficher le résultat sur deux colonnes, une piste:

        tu fais deux extractions de 10 lignes par exemple, par 2 boucles while tu les mets dans des "blocs" <div> </div> et par du CSS si tu connais tu les positionnes côte à côte.

        Autre solution, tu "empile" les 20 résultats dans un array_result dans ta boucle while et ensuite tu affiche dans un tableau à deux colonnes avec

        <tr>
        <td>$array_result[0] </td><td>  $ array_result[10]</td>
        </tr>
        <tr>
        <td>$array_result[1]   </td><td>  $array_result[11]</td>

        </tr>
        etc...

        bien sur tu adaptes avec d'autres<td> </td> pour retrouver ta mise en forme

        Le chiffre entre crochets [] peut être remplacé par une variable

        un bout de code exemple:

        while ($donnees = mysql_fetch_array($commaff)){
        
        // la tu remets tes instructions de verif et mise en forme bien sur
        	$array_result1[]=$donnees[1];// par exemple
        	// tu peux faire plusieurs $array_result....  si tu veux et les afficher dasn d'autres <td> de ta boucle for
        
        }
        
        echo "<table>";
        if(sizeof($array_result1)>0){
        	$nb_par_col=sizeof($array_result1)/2;
        	for($i=0;$i<$nb_par_col;$i++){
        		echo "<tr>";
        		echo "<td>".$array_result1[$i]."</td>";
        		echo "<td>".$array_result1[$i+$nb_par_col]."</td>";
        		echo "</tr>";
        	}
        }
        echo "<table>";