Sur ce http://www.video2brain.com/fr/products.htm les DVD sont sur 3 colonne.Je pense que chaque case du tableau correspond à 1 ligne de la base de donnée.
Comment refaire cette mise en forme.
PS:Dans ma base j'ai 3 colonne id,titre,prix
Merci
<?php
// requête, etc...
// initialisation du compteur
$compteur = 0;
// affichage
while(...){
// Affichage d'une ligne
// mise en forme
// ici on fera une mise en page à trois colonnes, mais c'est la même chose pour plus
if($compteur % 3 == 0){
echo $compteur.'<br />';
}
else {
echo $compteur.' | ';
}
// on incrémente le compteur
$compteur++;
}
Ensuite il suffit juste de jouer sur l'initialisation du compteur et la condition comprenant le modulo.
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Si tout va bien, on peut continuer
$reponse = $bdd->query('SELECT * FROM catalogue');
$compteur = 0;
while ($donnees = $reponse->fetch())
{
if($compteur % 3 == 0){
echo 'colonne1';
}
else {
echo 'colonne2';
}
// on incrémente le compteur
$compteur++;
}
?>
<?php
// on considèrera que ceci sort de ta base de donnée
$donnees = array(
array('id'=>1,'contenu'=>'Un'),
array('id'=>2,'contenu'=>'Deux'),
array('id'=>3,'contenu'=>'Trois'),
array('id'=>4,'contenu'=>'Quatre'),
array('id'=>5,'contenu'=>'Cinq'),
array('id'=>6,'contenu'=>'Six'),
array('id'=>7,'contenu'=>'Sept'),
array('id'=>8,'contenu'=>'Huit'),
array('id'=>9,'contenu'=>'Neuf'),
array('id'=>10,'contenu'=>'Dix')
);
// Affichage de l'entête du tableau
?>
<table>
<tbody>
<?php
// initialisation du compteur
$compteur = 0;
$nb_colonne = 5;
// affichage
// (remplacer le foreach par un while($line = mysql_fetch_*...) pour des données
// provenant réellement d'une bdd)
foreach($donnees as $line){
// Si le modulo est égal à 0, c'est que l'on commence une ligne
if(($compteur % $nb_colonne) == 0){
echo '<tr>'.PHP_EOL;
}
echo '<td>'.PHP_EOL.
'<h1>'.$line['id'].'</h1>'.PHP_EOL.
'<p>'.$line['contenu'].'</p>'.PHP_EOL.
'</td>';
// Si le modulo est égal à $nb_colonne-1, c'est que l'on finit une ligne
if(($compteur % $nb_colonne) == ($nb_colonne -1)){
echo '</tr>'.PHP_EOL;
}
// on incrémente le compteur
$compteur++;
}
?>
</tbody>
</table>
Tu peux faire varier $nb_colonne et tu verras ça fonctionne toujours!
<?
if (...) { ?>
truc html
<? { ?>
<?php
if (...) { ?>
truc html
<?php
}
Mais peut-être n'ais-je pas compris la question? Qu'entends-tu par "comment fonctionne..." ?
<?php
if(true){
echo 'true';
}
équivaut à ça:
<?php
if(true){
?>
true
<?php
}