Tableau image php

Fermé
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 - Modifié par Xella60 le 24/02/2011 à 15:21
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 - 25 févr. 2011 à 12:55
Bonjour,

J'aimerai obtenir une "galerie" d'images de ce type : www.maliki.com

J'ai essayé d'utiliser ce code trouver sur le net :

<?php

$serveur = 'localhost';
$utilisateur = 'root';
$motdepasse = 'xx';
$base = 'xx';

mysql_connect($serveur,$utilisateur,$motdepasse) or die ("erreur de connexion serveur");
mysql_select_db($base) or die ("erreur de connexion base");

$query1 = "select count(*) from photos";
$result1 = mysql_query($query1);
$row1=mysql_fetch_row($result1);

$query = "SELECT * from photos";
$result = mysql_query($query);
echo "<table>";
$i=0
while($row = mysql_fetch_row($resultg)){
$a1=$row[0];

for($i;$i<$row1;$i++)
{

echo "<tr>"; //tu vois ici une seule <tr> pour dire que c'est ligne

echo "<td><img src='le chemin de ton image (possible avec une simple requête select et tu stocke le chemin dans un variable)'></td>";
echo "<td><img src='le chemin de ton image'></td>";
echo "<td><img src='le chemin de ton image'></td>";

echo "</tr>";

$i=$i+3;
}

}
echo "</table>"; # on ferme le tableau ici pr qu'il ne répète pas a chaque itération..

?>

Ma table Photos ne contient que 2 champs. La clé primaire et un champ LienPhotos.

Le script fonctionne pas et j'en est absolument besoin.. Mon stage se finit demain midi :(

Merci d'avance !


A voir également:

5 réponses

Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
24 févr. 2011 à 17:38
C'est bien parce que le select count(*) , m'a fait mal au coeur pour la base de donnée... :
<?php
define("NB_IMG_PER_LINE", 3);

$serveur = 'localhost';
$utilisateur = 'root';
$motdepasse = 'xx';
$base = 'xx';

mysql_connect($serveur,$utilisateur,$motdepasse) or die ("erreur de connexion serveur");
mysql_select_db($base) or die ("erreur de connexion base");

$query = "SELECT 'LienPhotos' from 'photos'";
$result = mysql_query($query) or die('Error mysql : '.mysql_error());

if(mysql_num_rows($query) > 0){
    echo "<table>";
    $iCptLine = 1;
    while($row = mysql_fetch_assoc($result)){
        if($iCptLine == 1){
            echo "<tr>";
        }
        echo "<td><img src='".$row['LienPhotos']."'/></td>";
        if($iCptLine == NB_IMG_PER_LINE){
            $iCptLine = 1;
            echo "</tr>";
        }
        $iCpt++;
    }
    echo "</table>";
}else{
    echo "Il n'y a pas d'images en base.";
}
?> 


J'ai pas testé le code, mais dans l'esprit ça le fera + avec ça !
0
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 3
25 févr. 2011 à 08:41
Merci de m'avoir répondu, ton code ne fonctionne pas. Il me renvoi toujours "Il n'y a pas d'images en base"

Alors qu'avec une simple requête qui affiche en liste j'ai bien mes images.
0
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 3
25 févr. 2011 à 09:23
J'ai résolu une partie du problème, tu as écrit:

if(mysql_num_rows($query) > 0)

La bonne syntaxe est :

if(mysql_num_rows($result)> 0)

Du coup je n'ai plus le message qui dit qu'il n'y a pas d'images en base.

Par contre mon autre problèmes est :

Le résultat de la requête s'affiche toujours en ligne ... Et au lieu de m'afficher mes photos cela affiche comme ceci:

LienPhotos
LienPhotos
LienPhotos
LienPhotos
LienPhotos
LienPhotos
LienPhotos
0
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 3
25 févr. 2011 à 09:59
J'arrive a afficher mes images mais il me reste un problème !
Je ne sais pas comment corriger la boucle, en faite quand le compteur = 3 on change de ligne on met le compteur à 0.
Juste après tu met le compteur a incrémenter, du coup la condition pour ouvrir une ligne ne fonctionne pas!

Je me retrouve donc avec une ligne à 3 colonnes puis une deuxieme ligne ou TOUTES les images se suivent.

Merci beaucoup pour la piste, j'essai de corriger la boucle mais j'ai pas d'idée là.

Voilà mon code actuel:

<?php


$serveur = 'localhost';
$utilisateur = 'root';
$motdepasse = 'xx';
$base = 'xx';

mysql_connect($serveur,$utilisateur,$motdepasse) or die ("erreur de connexion serveur");
mysql_select_db($base) or die ("erreur de connexion base");

$query = "SELECT LienPhotos from photos";
$result = mysql_query($query) or die('Error mysql : '.mysql_error());

if(mysql_num_rows($result) > 0){
echo "<table>";
$iCptLine == 0;
while($row = mysql_fetch_assoc($result))
{

if($iCptLine == 0)
{
echo "<tr>";
}

echo "<td>".$row['LienPhotos']."</td>";


if($iCptLine == 3)
{
$iCptLine == 0;
echo "</tr>";
}

$iCptLine==$iCptLine++;
}
echo "</table>";
}else{
echo "Il n'y a pas d'images en base.";
}

?>
0
Xella60 Messages postés 65 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 25 février 2011 3
25 févr. 2011 à 10:24
J'ai résolu mon problème !!! Merci beaucoup pour la piste que tu m'as donné.
J'ai changé mon compteur de place, de plus $iCptLine == 0 ne renvoyait pas la valeur 0 du coup il n'y avait de pas de passage à la ligne suivante.

J'ai changé comme ceci:

$query = "SELECT LienPhotos from photos";
$result = mysql_query($query) or die('Error mysql : '.mysql_error());

if(mysql_num_rows($result) > 0){
echo "<table align='center'>";
$iCptLine == 0;
while($row = mysql_fetch_assoc($result))
{

if($iCptLine == 0)
{
echo "<tr>";
}

echo "<td>".$row['LienPhotos']."</td>";

$iCptLine==$iCptLine++;
if($iCptLine == 3)
{
$iCptLine='';
echo "$iCptLine";
echo "</tr>";
}


}
echo "</table>";
}else{
echo "Il n'y a pas d'images en base.";
}

?>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zep3k!GnO Messages postés 2025 Date d'inscription jeudi 22 septembre 2005 Statut Membre Dernière intervention 18 novembre 2015 200
Modifié par Zep3k!GnO le 25/02/2011 à 12:56
Yes,
j'ai écrit ça vite fait hier entre 2 trucs et i'ai fait pas mal de CC d'ou les p'tites erreurs :) mais l'esprit était la.
pour info :
$iCptLine == 0;
Mieux vaut mettre
$iCptLine = 0; // le double = étant utllisé lors de tests et non lors d'une affectation

$iCptLine==$iCptLine++;
Mieux vaut mettre juste $iCptLine++; //c'est la syntaxe raccourci pour $iCptLine += 1;


Zep3k!GnO
On est des rangers mec, des rangers...
0