Affichage d'1 seule et mê image après requête
Résolu
cebi
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
cebi -
cebi -
Bonjour,
Je souhaite réaliser un album photos, le chemin de mes imgs sont dans ma bdd. Cet album demande tout d'abord la rubrique que l'on souhaite visualiser, puis après requête, affichage des miniatures de la rubrique sélectionnée sur la même page. Tous les chemins des miniatures et des gdes imgs se trouvent dans la bdd.
J'ai un problème pour afficher les miniatures dans un tableau, j'ai juste la 1ère image de ma lilste qui s'affiche mais la boucle ne se fait pas, pour afficher les suivantes. J'ai 20 images à afficher et n'en vois qu'une seule qui s'affiche en x x x fois. J'ai pourtant ma boucle while...
Si quelqu'un a une idée, je suis preneuse, car là, je tourne en rond depuis...
Merci d'avance et beaucoup !
Voici le code :
echo "<form action='galerie.php' method='POST' enctype='multipart/form-data'>
<br />
Choisissez la rubrique qui vous intéresse : <br /><br />";
// Connection au serveur mySQL
//Connexion base
//Requête : chercher les rubriques existantes dans la bdd
$query = "SELECT RubriqueID, RubriqueName FROM rubrique ORDER BY RubriqueName DESC";
$result = mysql_query($query) OR die("Les rubriques existantes n'ont pas été trouvées");
//Formulaire pour selectionner une rubrique existante
echo "<select name = 'select_rub'>";
$Selected = 0;
while($row = mysql_fetch_array($result)){
if($Selected ==0){
echo '<option value ="',$row[0], '" selected="selected">',$row[1],'</option>';
$Selected = 1;
}
else{
echo '<option value ="', $row[0], '">',$row[1],'</option>';
}
}
echo "</select>
<br /><br />
<input type='submit' value='Trouver la rubrique qui vous intéresse'/>
</form>";//Fin du Formulaire
//Récupérer RubriqueID selectionné ainsi que son nom et sa description
$RubriqueID = $_POST['select_rub'];
$query = "SELECT RubriqueID, RubriqueName , RubriqueDesc
FROM rubrique
WHERE RubriqueID='$RubriqueID'";
$reponse = mysql_query($query) OR die("Les rubriques existantes n'ont pas été trouvées");
$ligne = mysql_fetch_assoc($reponse);
$RubriqueID = $ligne['RubriqueID'];
$RubriqueName = $ligne['RubriqueName'];
$RubriqueDesc = $ligne['RubriqueDesc'];
echo "Description de la rubrique : "."<strong><font color='red'>".$RubriqueDesc."</font></strong>";
//Récupérer le nbre d'images à afficher
$RubriqueID = $_POST['select_rub'];
$query = "SELECT count(ImageID) AS ImgCount
FROM image
WHERE RubriqueID='$RubriqueID'";
$rs = mysql_query($query) OR die("Le nbre d'images n'a pas pu être évalué");
$ImgCount = (mysql_result($rs,0,"ImgCount")/2);
echo "<br /><br />Cette rubrique possède : $ImgCount image(s)<br /><br />";
//Chercher dans la table Image les chemins et infos pour afficher les miniatures
$RubriqueID = $_POST['select_rub'];
$query = "SELECT RubriqueID, ImageID, ImageName, ImageChemin, MiniName, MiniChemin, LargeurDestination, HauteurDestination
FROM image
WHERE RubriqueID='$RubriqueID'
ORDER BY ImageName";
$resultat = mysql_query($query) OR die("Les informations concernant les images n'ont pas été récupérés de la BDD");
//Commence le tableau pour afficher les miniatures
echo "<table align='center'>";
//Initialisation variable
$i=0;
//Récupération du résultat de la requête
while($row = mysql_fetch_array($resultat))
{
//On se base sur le nombre d'images trouvées pour "fabriquer" le tableau
for($i;$i<$ImgCount;$i++)
{
//Commence une ligne
echo "<tr>";
//Commence colonne 1
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Commence colonne 2
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Commence colonne 3
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Ferme la ligne
echo "</tr>";
//Si je suis à 6, retour à la ligne
$i=$i+3;
}
}
//Termine le tableau
echo "</table>";
//Fermeture de la connexion
mysql_close();
Je souhaite réaliser un album photos, le chemin de mes imgs sont dans ma bdd. Cet album demande tout d'abord la rubrique que l'on souhaite visualiser, puis après requête, affichage des miniatures de la rubrique sélectionnée sur la même page. Tous les chemins des miniatures et des gdes imgs se trouvent dans la bdd.
J'ai un problème pour afficher les miniatures dans un tableau, j'ai juste la 1ère image de ma lilste qui s'affiche mais la boucle ne se fait pas, pour afficher les suivantes. J'ai 20 images à afficher et n'en vois qu'une seule qui s'affiche en x x x fois. J'ai pourtant ma boucle while...
Si quelqu'un a une idée, je suis preneuse, car là, je tourne en rond depuis...
Merci d'avance et beaucoup !
Voici le code :
echo "<form action='galerie.php' method='POST' enctype='multipart/form-data'>
<br />
Choisissez la rubrique qui vous intéresse : <br /><br />";
// Connection au serveur mySQL
//Connexion base
//Requête : chercher les rubriques existantes dans la bdd
$query = "SELECT RubriqueID, RubriqueName FROM rubrique ORDER BY RubriqueName DESC";
$result = mysql_query($query) OR die("Les rubriques existantes n'ont pas été trouvées");
//Formulaire pour selectionner une rubrique existante
echo "<select name = 'select_rub'>";
$Selected = 0;
while($row = mysql_fetch_array($result)){
if($Selected ==0){
echo '<option value ="',$row[0], '" selected="selected">',$row[1],'</option>';
$Selected = 1;
}
else{
echo '<option value ="', $row[0], '">',$row[1],'</option>';
}
}
echo "</select>
<br /><br />
<input type='submit' value='Trouver la rubrique qui vous intéresse'/>
</form>";//Fin du Formulaire
//Récupérer RubriqueID selectionné ainsi que son nom et sa description
$RubriqueID = $_POST['select_rub'];
$query = "SELECT RubriqueID, RubriqueName , RubriqueDesc
FROM rubrique
WHERE RubriqueID='$RubriqueID'";
$reponse = mysql_query($query) OR die("Les rubriques existantes n'ont pas été trouvées");
$ligne = mysql_fetch_assoc($reponse);
$RubriqueID = $ligne['RubriqueID'];
$RubriqueName = $ligne['RubriqueName'];
$RubriqueDesc = $ligne['RubriqueDesc'];
echo "Description de la rubrique : "."<strong><font color='red'>".$RubriqueDesc."</font></strong>";
//Récupérer le nbre d'images à afficher
$RubriqueID = $_POST['select_rub'];
$query = "SELECT count(ImageID) AS ImgCount
FROM image
WHERE RubriqueID='$RubriqueID'";
$rs = mysql_query($query) OR die("Le nbre d'images n'a pas pu être évalué");
$ImgCount = (mysql_result($rs,0,"ImgCount")/2);
echo "<br /><br />Cette rubrique possède : $ImgCount image(s)<br /><br />";
//Chercher dans la table Image les chemins et infos pour afficher les miniatures
$RubriqueID = $_POST['select_rub'];
$query = "SELECT RubriqueID, ImageID, ImageName, ImageChemin, MiniName, MiniChemin, LargeurDestination, HauteurDestination
FROM image
WHERE RubriqueID='$RubriqueID'
ORDER BY ImageName";
$resultat = mysql_query($query) OR die("Les informations concernant les images n'ont pas été récupérés de la BDD");
//Commence le tableau pour afficher les miniatures
echo "<table align='center'>";
//Initialisation variable
$i=0;
//Récupération du résultat de la requête
while($row = mysql_fetch_array($resultat))
{
//On se base sur le nombre d'images trouvées pour "fabriquer" le tableau
for($i;$i<$ImgCount;$i++)
{
//Commence une ligne
echo "<tr>";
//Commence colonne 1
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Commence colonne 2
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Commence colonne 3
echo "<td align='center'>";
//Récupére les données de la requête pour pouvoir ensuite les afficher
$ImageID = $row['ImageID'];
$ImageName = $row['ImageName'];
$ImageChemin = $row['ImageChemin'];
$MiniName = $row['MiniName'];
//Chemin absolu de la miniature
$MiniChemin = $row['MiniChemin'];
//Je récupère les dimensions de l'image
$LargeurDestination =$row['LargeurDestination'];
$HauteurDestination =$row['HauteurDestination'];
//J'affiche la miniature
echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />";
echo "</td>";
//Ferme la ligne
echo "</tr>";
//Si je suis à 6, retour à la ligne
$i=$i+3;
}
}
//Termine le tableau
echo "</table>";
//Fermeture de la connexion
mysql_close();
A voir également:
- Affichage d'1 seule et mê image après requête
- Double affichage sur un seul écran - Guide
- Image iso - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Windows 11 affichage classique - Guide
- Acronis true image - Télécharger - Sauvegarde
4 réponses
Oui il te faut deux variables une pour le nombre que tu souhaite d'image pas ligne et et l(autre pour tester combien il y a d'image sur la ligne.
$NbrImgParLigne = 3; $NumImgLigne = 0; while ($row = mysql_fetch_array($result)) { if ($NumImgLigne>=$NbrImgParLigne) { echo "</tr><tr>"; $NumImgLigne = 0; } $NumImgLigne++; echo "<td align='center'>"; $ImageID = $row['ImageID']; $ImageName = $row['ImageName']; $ImageChemin = $row['ImageChemin']; $MiniName = $row['MiniName']; //Chemin absolu de la miniature $MiniChemin = $row['MiniChemin']; //Je récupère les dimensions de l'image $LargeurDestination =$row['LargeurDestination']; $HauteurDestination =$row['HauteurDestination']; //J'affiche la miniature echo "<a href='$ImageChemin' target='blank'>$ImageName<br/><img src='$MiniChemin' width='$LargeurDestination' height='$HauteurDestination' border =1 alt='$ImageName' />"; echo "</td>";
Bonsoir,
le nom de l'image à afficher ne varie pas dan les colonnes ; c'est donc normal que la même image soit affichée.
le nom de l'image à afficher ne varie pas dan les colonnes ; c'est donc normal que la même image soit affichée.
Bonjour et merci pour ta réponse.
Mais je ne sais pas comment faire puisque (pour moi, et je suis débutante...) je récupère les données grâce à "mysql_fetch_array", je ne peux donc pas mettre un nom d'image puisque la réponse est récupérée de ma bdd et d'une sélection de rubrique. Il faut peut-être un $row++ quelque part...je vais de nouveau essayer !En tout cas, si tu as une idée, je suis preneuse !
Mais je ne sais pas comment faire puisque (pour moi, et je suis débutante...) je récupère les données grâce à "mysql_fetch_array", je ne peux donc pas mettre un nom d'image puisque la réponse est récupérée de ma bdd et d'une sélection de rubrique. Il faut peut-être un $row++ quelque part...je vais de nouveau essayer !En tout cas, si tu as une idée, je suis preneuse !
Bonjour,
Pour voir ce que retourne la requête fais :
//Récupération du résultat de la requête
while($row = mysql_fetch_array($resultat))
{
echo "<pre>";print_r($row); echo "</pre>";
cela te permettra je pense de mieux voir ce qu'il fut faire.
ou alors donne la structure de ta BDD.
Pour voir ce que retourne la requête fais :
//Récupération du résultat de la requête
while($row = mysql_fetch_array($resultat))
{
echo "<pre>";print_r($row); echo "</pre>";
cela te permettra je pense de mieux voir ce qu'il fut faire.
ou alors donne la structure de ta BDD.
Giheller,
Je viens de faire ta formule et tout fonctionne :=> il me le ressort bien en forme de tableau array et me donne bien tout le descriptif de toutes les images.
En fait, c'est à chaque fois que je mets des <td> qu'il me reprend la même image, cela ne s'incrémente plus, il ne va pas chercher l'image d'après.
Si je fais juste :
while($row=mysql_fetch_array(resultat)
{
echo "<table>";
echo "<tr>";
//Je récupère ici le résultat de la requête ($ImageID = $row['ImageID'] etc...)
echo "<td>";
echo "<a href="......><img src =.......></a>";(même chose que dans le code ci-dessus)
echo "</td></tr></table>";
}
Là, j'ai bien mes images qui sont les unes sous les autres.(Normal, j'ai juste une colonne)
Une idée ?
Je viens de faire ta formule et tout fonctionne :=> il me le ressort bien en forme de tableau array et me donne bien tout le descriptif de toutes les images.
En fait, c'est à chaque fois que je mets des <td> qu'il me reprend la même image, cela ne s'incrémente plus, il ne va pas chercher l'image d'après.
Si je fais juste :
while($row=mysql_fetch_array(resultat)
{
echo "<table>";
echo "<tr>";
//Je récupère ici le résultat de la requête ($ImageID = $row['ImageID'] etc...)
echo "<td>";
echo "<a href="......><img src =.......></a>";(même chose que dans le code ci-dessus)
echo "</td></tr></table>";
}
Là, j'ai bien mes images qui sont les unes sous les autres.(Normal, j'ai juste une colonne)
Une idée ?
Cela fonctionne très bien et lorsque je vois ça, c'est simple à comprendre..
Pourquoi faire simple quand on peut faire compliqué ?!!
Encore Merci et bon WE.