Probleme affichage d'une galerie d'images

Rechercher

Probleme affichage d'une galerie d'images

Par paintbox  -  4 reponses  -  Le 16/05/2010 18:11  -  Editer  - 

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

Par Cyrano  -  Le 17/05/2010 08:28  -  Haut de page  - 

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 =

 
Par paintbox  -  Le 17/05/2010 20:09  -  Haut de page  - 

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

 
Par  -  Le 07/01/2012 06:17  -  Haut de page  - 

Great Site, very useful and save me a tonne of time. uggs boots cheap

 

 
Par  -  Le 07/01/2012 06:17  -  Haut de page  - 

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

 

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |