Affichage php/mysql sur 2 colones

debutant05 -  
 Alain42 -
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. Alain42
     
    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>";
    
    0
  2. debutant05
     
    Merci beaucoup pour ta réponse, pourrais tu me donner un exemple stp, j'ai du mal a comprend,

    Merci encore
    0
  3. Alain42
     
    Bonsoir,

    je n'ai pas d'exemple, tu t'inspires de ce que je t'ai fait.
    0