mysql_fetch_array()

landro
Invité n'ayant pas de compte PHPfrance

20 mars 2009, 00:56

slt !!!
g voudrais créer une bibliothèque d'images dont les fichiers images sont stockés dans un répertoire .
Ces liens vers ces images sont insérés dans une colonne "src" de la table "photos" de ma base de données "landro" Comme l'indique mon code :

<?php
function affiche_accueil()
{
$sql_affiche=mysql_query("select commentaire,src from photos where
				date_publication IS NOT NULL");
$i=4;
for ($j=0;$j<$i;$j++)
{
while($donnees=mysql_fetch_array($sql_affiche))
{
?>
<div class= "photo" align="left">
<p> <a href="index.php"><img src="<?php echo $donnees['src']; ?>" width="100" height="115"/><br/>
  <?php echo $donnees['commentaire']; ?>
 </a><p>
 </div>
 <?php 
 }
 $j++;
}
if ($j==4)
{
echo '<br>';
echo '<br>';
echo '<br>';
	}
	}
?>

question : comment afficher 4 photos par ligne avec le commentaire correspondant ?
nb : mon code affiche une photo par ligne

merci

Eléphant du PHP | 141 Messages

20 mars 2009, 09:40

Comme l'indique mon code :
Peux-tu mettre ce fameux code entre balises php pour qu'il soit humainement lisible :wink: ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 mars 2009, 13:10

Modération :
landro, afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

J'ai édité ton message afin de les ajouter, puisque tu as posté celui-ci en tant qu'invité.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 30 Messages

20 mars 2009, 13:14

Tu utilises la balise <p> paragraphe qui va à la ligne après chaque photo. Soit tu l'enlèves, soit tu utilises ton compteur $j pour insérer ou non cette balise.

Quand tu génères du HTML dynamiquement, pense à regarder le code source de ta page générée, ça aide ! :)

ViPHP
ViPHP | 1996 Messages

20 mars 2009, 14:20

Tu utilises la balise <p> paragraphe qui va à la ligne après chaque photo. Soit tu l'enlèves, soit tu utilises ton compteur $j pour insérer ou non cette balise.

Quand tu génères du HTML dynamiquement, pense à regarder le code source de ta page générée, ça aide ! :)
Mwéais :-k |(X Je suis pas trop d'accord : si tu utilises les paragraphe <p> c'est bien ne les enlèves pas. Tu seras plus conform au W3C. Utilise plutôt les CSS avec la propriétés float pour les mettre côte à côte. Ainsi tous les 4 (ce que tu veux) tu mettras un clear:both; pour revenir à la ligne.
?>
<div class= "photo" align="left">
<?php
$i=0;
while($donnees=mysql_fetch_assoc($sql_affiche))
{
echo ($i == 4) ? "<p style='clear:both;'>" : "<p style='float:left;'>";
?>
   <a href="index.php">
   <img src="<?php echo $donnees['src']; ?>" width="100" height="115"/>
   <br />
   <?php echo $donnees['commentaire']; ?>
   </a>
</p>
 <?php  
 $j++;
 if ($i == 4) $i=0;
}
?>
</div>
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphanteau du PHP | 30 Messages

20 mars 2009, 14:40

Effectivement c'est bien de les garder donc il peut utiliser l'autre solution que j'ai suggérée : n'insérer la balise <p> que toutes les 4 images, donc déplacer le compteur. Ou gérer ça par CSS :)