Affichage php/mysql sur 2 colones

Fermé
debutant05 - 14 nov. 2007 à 13:29
 Alain42 - 14 nov. 2007 à 20:19
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>
';


}
?>
A voir également:

3 réponses

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

Merci encore
0
Bonsoir,

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