Resultat boucle php +html sur deux colonnes?

Fermé
gégé - 21 févr. 2010 à 18:58
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 - 21 févr. 2010 à 19:32
Bonjour,

j' ai un ennui, peu etre allez vous pouvoir m' aider.

J' essaie de faire en amateur une boutique en ligne, c' est pas mal parti du tout, sauf que maintenant j' essaie d' afficher les derniers ajouts d' articles sur la page d' accueil.

Le resultat se fait bien mais mes tableaux apparaissent les uns en dessous des autres alors que j' aurai preferé les avoir sur deux colonnes.


Voici mon ti bout de code:

<?php
$last2 = mysql_query("SELECT * FROM articles ORDER BY id ASC")or die(mysql_error());
while ($last = mysql_fetch_array($last2))
{
?>

<table width="405" height="110" border="0" cellpadding="0" cellspacing="0" background="images/main/last_article.png">
<tr>
<td width="113" rowspan="3" align="center" valign="middle"><img src="images/articles/miniatures/<?php echo $last['photo1']; ?>" height="100 "alt="" /></td>
<td height="18" colspan="2" align="left" valign="top"><span class="Style2"><?php echo $last['nom']; ?></span></td>
</tr>
<tr>
<td height="54" colspan="2" align="right" valign="middle"><table width="292" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="148" align="left" valign="top"><?php echo $last['courte_desc']; ?></td>
<td width="11" align="left" valign="top"> </td>
<td width="133" align="right"><img src="images/remises/<?php echo $last['remise']; ?>" width="100" height="45" /><img src="images/main/blank20.png" width="20" height="1" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="132" align="left" valign="top"><img src="images/articles/marques/<?php echo $last['marque']; ?>" width="54" height="26" /></td>
<td width="160" height="33" align="right" valign="top"><a href="article.php?=<?php echo $last['id']; ?>"><img src="images/main/plusdinfo.png" width="100" height="20" border="0" /></a><img src="images/main/blank20.png" width="20" height="1" /></td>
</tr>
</table>

<?php
}
?>
A voir également:

2 réponses

j' ai utilisé ce bout de code qui normalement doit fonctionner, cependant je me retrouve encore avec mes resultats les uns en dessous des autres:





<?php

$nbCols = 2; // nombre de colonnes du tableau

$cpt = 0; // compteur d'éléments

?>



<table width="830" border="0" align="center" cellpadding="0" cellspacing="0">

<tr>

<th width="405" height="30" align="center" valign="middle" style="width:<?php echo round(100/$nbCols);?>%;"></th>

<th width="18" align="center" valign="middle" style="width:<?php echo round(100/$nbCols);?>%;"></th>

<th width="405" align="center" valign="middle" style="width:<?php echo round(100/$nbCols);?>%;"></th>

</tr>

<?php



$rs = mysql_query('SELECT * FROM articles'); // exécution de la requête

// Nota : on pourrait tout aussi bien parcourir les éléments d'un tableau ou les fichiers d'un dossier



while ($row=mysql_fetch_assoc($rs)) { // parcours des résultats



// début d'une ligne

if ($cpt%$nbCols==0) // on divise le nb d'élément par le nb de colonnes. Si le reste est de 0 ...

echo '<tr>'; // ..., alors on est sur le premier élément d'une ligne





// On place chaque élément dans une cellule du tableau

echo '<table width="405" height="110" border="0" cellpadding="0" cellspacing="0" background="images/main/last_article.png">
<tr>
<td width="113" rowspan="3" align="center" valign="middle"><img src="images/articles/miniatures/';

echo $row['photo1'];


echo '" height="100 "alt="" /></td>
<td height="18" colspan="2" align="left" valign="top"><span class="Style2">';

echo $row['nom'];


echo '</span></td>
</tr>
<tr>
<td height="54" colspan="2" align="right" valign="middle"><table width="292" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="148" align="left" valign="top">';

echo $row['courte_desc'];


echo '</td>
<td width="11" align="left" valign="top"> </td>
<td width="133" align="right"><img src="images/remises/';

echo $row['remise'];

echo'" width="100" height="45" /><img src="images/main/blank20.png" width="20" height="1" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="132" align="left" valign="top"><img src="images/articles/marques/';

echo $row['marque'];

echo '" width="54" height="26" /></td>
<td width="160" height="33" align="right" valign="top"><a href="article.php?=';

echo $row['id'];

echo '"><img src="images/main/plusdinfo.png" width="100" height="20" border="0" /></a><img src="images/main/blank20.png" width="20" height="1" /></td>
</tr>
</table>';







// fin d'une ligne

if ($cpt%$nbCols==($nbCols-1)) // on divise le nb d'élément par le nb de colonnes. Si le reste est de ($nbCols-1) ...

echo '</tr>'; // ..., on est sur le dernier élément d'une ligne



$cpt++; // on incrémente le compteur pour savoir où on en est

}



// Au cas où ...

if ($cpt!=0 && $cpt%$nbCols!=0) { // S'il n'y a pas eu assez de cellules dans la boucle pour finir la ligne ...

echo '<td colspan="'.($nbCols - ($cpt%$nbCols) ).'"> </td>'; // ... on complète avec une cellule vide de la bonne taille...

echo '</tr>'; // ... et on ferme la ligne

}



?>
0
graffx Messages postés 6506 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 975
21 févr. 2010 à 19:32
Oui c' est bizarre, je ne vois pas comme ca, desolé va falloir attendre la reponse d' un meilleur que moi :)

Avion-f16 à la rescousse ^^
0