8722 sujets

Développement web côté serveur, CMS

Bonjour,
je voudrais afficher la photo entête de chacun des albums photos.
Les photos entêtes sont répertoriées dans la bdd.
Sur le serveur, elles se trouvent dans admin/ALBUMS/Mini/
Sachant que j'ai plusieurs albums, le but est d'afficher chaque entête de chaque album.
COMMENT FAIRE svp?
J'ai essayé en insérant la variable "id" de l'album dans $dir, afin d'accéder au bon album dans un 1er temps, puis à la photo entete correspondante, Mais ça ne fonctionne pas..
Merci d'avance de votre aide ! Smiley smile
Voici mon code pour plus de clarté :
<?php 
// on crée la requête SQL : on va chercher id, nomAlbum, photoEntete, description de la table "MesAlbums" 
//et on les ordonne par id 
$sql = 'SELECT id, nomAlbum, photoEntete, description FROM MesAlbums ORDER BY id'; 
// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
$id = 'id'; 
$dir = "admin/ALBUMS/ICI COMMENT METTRE l'ID DE LALBUM???/Mini/"; 
// on fait une boucle qui va faire un tour pour chaque enregistrement , 
// en gros tant qu'il y aura encore un album dans la table 
while($data = mysql_fetch_assoc($req)) 
{ 
// on affiche les informations de l'enregistrement en cours 
echo "<div class='box-item'>"; 
echo '<a href="album.php?id='.$data['id'].'&nomAlbum='.$data['nomAlbum'].'">'; 
echo "<span class='image-container'>"; 
echo "<img src='".$dir.$data['photoEntete']."' width=200 height=150/>"; 
echo "</span>"; 
echo "<strong>".$data['nomAlbum']."</strong></br>"; 
echo '<span class="date">'.$data['description'].'</span>'; 
echo '</a>'; 
echo "</div>"; 
} ; 
echo "<div class='spacer'></div>"; 
echo "</div>"; 
mysql_close($link); 
?>
upload/54602-Capturedec.png
Salut

Si je comprends bien ton arborescence sur ton serveur correspond à celle ci :

- admin/ALBUMS/1/Mini/ ; admin/ALBUMS/2/Mini/ ; admin/ALBUMS/3/Mini/ etc ... ?

Si oui ta requête te retourne plusieurs résultats de ce fait tu peux pas mettre ton
$dir = "admin/ALBUMS/ICI COMMENT METTRE l'ID DE LALBUM???/Mini/"; 
avant ton
while($data = mysql_fetch_assoc($req)) { 


Il faudrait plutôt faire quelque chose du genre :


<?php 
// on crée la requête SQL : on va chercher id, nomAlbum, photoEntete, description de la table "MesAlbums" 
//et on les ordonne par id 
$sql = 'SELECT id, nomAlbum, photoEntete, description FROM MesAlbums ORDER BY id'; 
// on envoie la requête 
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
// on fait une boucle qui va faire un tour pour chaque enregistrement , 
// en gros tant qu'il y aura encore un album dans la table 
while($data = mysql_fetch_assoc($req)) 
{ 
	$dir = "admin/ALBUMS/" . $data['id'] . "/Mini/"; 
	// on affiche les informations de l'enregistrement en cours 
	echo "<div class='box-item'>"; 
	echo '<a href="album.php?id='.$data['id'].'&nomAlbum='.$data['nomAlbum'].'">'; 
	echo "<span class='image-container'>"; 
	echo "<img src='".$dir.$data['photoEntete']."' width=200 height=150/>"; 
	echo "</span>"; 
	echo "<strong>".$data['nomAlbum']."</strong></br>"; 
	echo '<span class="date">'.$data['description'].'</span>'; 
	echo '</a>'; 
	echo "</div>"; 
} ; 
echo "<div class='spacer'></div>"; 
echo "</div>"; 
mysql_close($link); 
?>


Au passage il va falloir que tu abandonnes mysql pour mysqli ou pdo !

Bon week-end
Merci merci beaucoup !! ça fonctionne avec le $dir dans la boucle while.
Et merci pour le conseil au passage Smiley smile
Bonne semaine!
Pour le coup vu qu'elle stocke déjà des informations en base "nomAlbum", "description" etc ... autant qu'il/elle garde le chemin de l'album dans la table non ?

Je connais pas vraiment les perfs MySQL et readdir mais je suis pas sûr que l'on voit une différence pour les données présentées ici, après sur un gros volume je dis pas mais dans notre cas ...

Smiley smile
Modifié par John Wayne (05 May 2014 - 16:11)