Probleme affichage d'une galerie d'images
Bonjour à tous,
voici mon problème. Je cherche à afficher au moyen d'une fonction, le résultat d'une requete faite sur une base de données. Ce résultat comprend des données mais aussi des images. Ma requete est correcte.
Je souhaite que l'affichage se fasse dans un tableau de 4 colonnes sur Ylignes (= dépend du nombre de résultats retournés). Dans chaque case du grand tableau vient se mettre un tableau par résultat. Je fais donc 2 boucles for + un While qui parcourt le résultat de ma requete.
Je n'arrive pas à obtenir 4 cases () par ligne ().
Soit il me met tous mes resultats sur une ligne, soit tous mes resultats dans une colonne.
En fait, si j'affiche les valeurs de $lignes et $colonnes, elles ont directement les valeurs 9 et 4 càd les valeurs maximum.
Quelqu'un aurait-il une idée? Je n'arrive pas à voir ce qui ne va pas.
Merci de m'avoir lu et pour votre aide.
echo '<Table border="1">'; for ($i=1; $i<$lignes; $i++) { echo '<tr>'; for ($c=1; $c<$colonnes; $c++) { While($donnees=mysql_fetch_array($request)) { echo '<td>'; echo '<table border="1">'; echo '<tr>'; echo '<td>'.$donnees["commune"].'</td>'; echo '</tr>'; echo '<tr>'; echo '<td><img src='.$donnees['chemin_image'].'></td>'; echo '</tr>'; echo '<tr>'; echo '<td>'.$donnees["prix"].'</td>'; echo '</tr>'; echo '</table>'; echo '</td>'; } } echo '</tr>'; } echo '</table>';
Réponses apportées à cette discussion
Salut,
tu devrais essayer en commençant par te construire un tableau HTML avec quelques données en dur pour mettre au point le code que tu veux obtenir : là tu as visiblement tenté de construire ton HTML directement en PHP et ça donne un résultat qui ne correspond en rien à ce que tu veux obtenir. Règle importante : toujours commencer par créer des maquettes en HTML avec des données en dur pour mettre bien au point l'objectif : après seulement tu construis ça dynamiquement.
Pour le cas présent, on va simplifier un peu, regarde :
<?php
// On commence par récupérer le nombre de lignes retournées.
$nLignes = mysql_num_rows($request);
// S'il y a au moins une ligne de données :
if($nLignes > 0):
// Ouverture du tableau
$sTableau = <<<CODE_TABLEAU
<table border="1" summary="Liste des communes">
CODE_TABLEAU;
// On boucle sur les résultats pour chaque ligne du tableau
while(false !== ($donnees = mysql_fetch_assoc($request))):
$sTableau .= <<<CODE_TABLEAU
<tr>
<td>{$donnees["commune"]}</td>
<td><img src="{$donnees['chemin_image']}" alt="{$donnees["commune"]}"></td>
<td>{$donnees["prix"]}</td>
</tr>
CODE_TABLEAU;
endwhile;
// fermeture du tableau
$sTableau .= <<<CODE_TABLEAU
</table>
CODE_TABLEAU;
else:
// Aucun résultat, on affiche un résultat alternatif
$sTableau .= <<<CODE_TABLEAU
<h3>Aucun résultat</h3>
CODE_TABLEAU;
endif;
// Affichage du résultat
echo($sTableau);
Suis bien les commentaires que j'ai mis dans le code.
Un détail, j'ai utilisé la syntaxe HEREDOC ($var =
Bonjour Cyrano,
merci pour ton aide. J'ai regardé ta solution, mais pour l'instant ne pas trop comprendre. Mon niveau en PHP n'est pas suffisant. J'y regarderai plus tard.
Entre temps, j'ai trouvé une solution à mon problème et j'obtiens le résultat que je voulais.
Voici mon code et encore merci pour ton aide
[code]
$colonnes=4;
$maxlignes=$TotalBiens;
$lignes=ceil($TotalBiens/4);
$y=0;
echo '';
for ($l=0; $l
Great Site, very useful and save me a tonne of time. uggs boots cheap
Thanks for sharing this information. I really like your way of expressing the opinions and sharing the information. It is good to move as chance bring new things in life, paves the way for advancement, steelers jersey