Galerie photo php mysql

Résolu/Fermé
Ambrosia - 3 févr. 2012 à 10:18
 Ambrosia - 6 févr. 2012 à 08:43
Bonjour,
J'aurais besoin d'un petit coup de pouce, j'ai créé ma table 'galerie_photo" dans ma bdd, composée de troic champs : PHOTO_ID, PHOTO, et PHOTO_NOM.
Mes photos sont dans le dossier avec mon script "affiche.php".
Dans PHOTO_ID il y a bien sur l'ID de chaque photo (1, 2, 3 etc)
Dans PHOTO il y a le lien des photos www\galerie_photo\photo1.jpg (avec un doute à savoir si c'est ainsi qu'il faut mettre le lien dans le champ)
Dans PHOTO_NOM il y a le nom de chaque photo (Photo1, Photo2 etc)
Voici mon script
<?PHP

// infos de connexion à la base de données
include("conexdb.php");

// Connexion à la base de données

// Sélection de la base $bdd
mysql_selectdb('test');

// Ecriture requête SQL
$req_photo = "SELECT * FROM 'galerie_photo' WHERE 'PHOTO_ID' ='$PHOTO_ID'";

// Exécute la requête
$id_result_photo = mysql_query ($req_photo,$id_connex) ;

// Récupère le résultat de la requête dans le tableau $photo
$photo = mysql_fetch_array($id_result_photo,MYSQL_ASSOC) ;

echo "<html>";
echo "<head>";
echo "<title>".$photo["PHOTO_NOM"]."</title>";
echo "</head>";

echo "<table width=\"100%\">";
echo "<tr>";
if ($photo["PHOTO"]!=1)
{
$PHOTO_IDm=$PHOTO_ID-1;
echo "<td align=\"left\"><a href=\"affiche.php?PHOTO_ID=".$PHOTO_IDm."\" target=\"_self\"><b><font color=\"#999999\" face=\"Arial, Helvetica, sans-serif\"><<</font></b></td>";
}
else
{
$PHOTO_IDp=$PHOTO_ID+1;
echo "<td align=\"right\"><a href=\"affiche.php?PHOTO_ID=".$PHOTO_IDp."\" target=\"_self\"><b><font color=\"#999999\" face=\"Arial, Helvetica, sans-serif\">>></font></b></td>";
}
echo "</tr>";
echo "</table>";
echo "</body>";
echo "</html>";

?>

Le problème c'est que rien ne s'affiche à part le bouton "<<" pour passer à la photo précédente. Pourriez vous m'expliquer pourquoi svp ?
Merci de votre aide
A voir également:

12 réponses

J'ai essayé autrement

<?PHP

// infos de connexion à la base de données
include("../inc/secret.php");

// Connexion à la base de données

// Sélection de la base $bdd
mysql_selectdb('test');

// Ecriture requête SQL

$req_photo = "SELECT * FROM 'galerie_photo' WHERE '(PHOTO_ID='$PHOTO_ID') and (PHOTO='$PHOTO')" ;
$req_nombre = "SELECT * FROM photos WHERE (PHOTO_ID='$PHOTO_ID')" ;

// Exécute la requête
$id_result_photo = mysql_query ($req_photo,$id_connex) ;
$id_result_nombre = mysql_query ($req_nombre,$id_connex) ;

// Récupère le résultat de la requête dans le tableau $photo
$photo = mysql_fetch_array($id_result_photo,MYSQL_ASSOC) ;
$nbligne = mysql_num_rows ($id_result_nombre);

echo "<html>";
echo "<head>";
echo "<title>".$photo["PHOTO_NOM"]."</title>";
echo "</head>";
echo "<table width=\"100%\">";
echo "<tr>";
if ($photo["PHOTO"]!=1)
{
$PHOTOm=$PHOTO-1;
echo "<td align=\"left\"><a href=\"affiche.php?PHOTO_ID=".$PHOTO_ID."& PHOTO=".$PHOTOm."\" target=\"_self\"><b><font color=\"#999999\" face=\"Arial, Helvetica, sans-serif\"><<</font></b></td>";
}
if ($photo["PHOTO"]!= $nbligne)
{
$PHOTOp=$PHOTO+1;
echo "<td align=\"right\"><a href=\"affiche.php?PHOTO_ID=".$PHOTO_ID."& PHOTO=".$PHOTOp."\" target\"_self\"><b><font color=\"#999999\" face=\"Arial, Helvetica, sans-serif\">>></font></b></td>";
}
echo "</tr>";
echo "</table>";
echo "</body>";
echo "</html>";

?>

Mais cela ne fonctionne pas non plus et cela m'affiche :

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.8.1\www\galerie_photo\affiche.php on line 21

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP-5.3.8.1\www\galerie_photo\affiche.php on line 22
1
Pour préciser ma question, est ce que cela vient de mon script, ou bien de la façon dont j'ai mis les liens dans php my admin ? Ou les deux..
Merci
0
Personne n'a une petite idée pour m'aider ?? svp
0
jean3xw Messages postés 21 Date d'inscription vendredi 14 octobre 2011 Statut Membre Dernière intervention 29 mai 2014 1
Modifié par jean3xw le 4/02/2012 à 11:07
Essayez avec des slash(/) et non des anti slash(\) pour vos adresses.
S'il y en a deux différents c'est qu'ils n'ont pas la même utilité.

Une adresse c'est avec des slash(/) :
www.commentcamarche.net/forum
0
Merci Jeanx3xw, mais cela ne fonctionne toujours pas

J'ai plusieurs messages d'erreurs,

Notice: Undefined index: PHOTO_ID in C:\wamp\www\test\affiche.php on line 12

Notice: Undefined variable: id_connex in C:\wamp\www\test\affiche.php on line 16

Warning: mysql_query() expects parameter 2 to be resource, null given in C:\wamp\www\test\affiche.php on line 16

Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\wamp\www\test\affiche.php on line 20


Et voici mon code encore modifié :


<?php

// infos de connexion à la base de données



// Sélection de la base $bdd
mysql_selectdb('test');

// Ecriture requête SQL

$req_photo = "SELECT * FROM 'galerie_photo' WHERE 'PHOTO_ID'='".$_POST['PHOTO_ID']."' AND 'PHOTO'='".$_POST['PHOTO']."'" ;
/*$req_nombre = "SELECT * FROM 'galerie_photo' WHERE 'PHOTO_ID'= '".$_POST['PHOTO_ID']."'" ; */

// Exécute la requête
$id_result_photo = mysql_query ($req_photo,$id_connex)/*or die('Erreur SQL !'.$req.'<br>'.mysql_error())*/;
/*$id_result_nombre = mysql_query ($req_nombre,$id_connex); */

// Récupère le résultat de la requête dans le tableau $photo
$photo = mysql_fetch_array($id_result_photo,MYSQL_ASSOC) ;
/*$nbligne = mysql_num_rows ($id_result_nombre); */

echo "<html>";
echo "<head>";
echo "<title>".$photo["PHOTO_NOM"]."</title>";
echo "</head>";
echo "<table width='100%'>";
echo "<tr>";

if ($photo["PHOTO"]!=1)
{
$PHOTOmoins=$_POST['PHOTO']--;

echo "<td align='left'><a href='affiche.php?PHOTO_ID=".$PHOTOmoins."&PHOTO=".$_POST['PHOTO_ID']."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'><<</font></b></td>";
}
if ($photo["PHOTO"]!=8 )
{
$PHOTOplus=$_POST['PHOTO']++;

echo "<td align='right'><a href='affiche.php?PHOTO_ID=".$PHOTOplus."&PHOTO=".$_POST['PHOTO_ID']."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'>>></font></b></td>";
}
echo "</tr>";
echo "</table>";
echo "</body>";
echo "</html>";

?>

Merci de votre aide
0
ddtddt Messages postés 216 Date d'inscription mardi 1 novembre 2011 Statut Membre Dernière intervention 8 juin 2013 5
5 févr. 2012 à 08:07
as tu essayer de faire un echo $_POST['PHOTO'];

pour vérifier qu'il y a bien une réponse ?
0

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

Posez votre question
Oui j'ai essayé mais il n'y a rien.
Comme mon script est dans le même dossier que mes photos, j'ai essayé de ne mettre que photox.jpg dans ma bdd, mais cela ne change rien.
0
Utilisateur anonyme
5 févr. 2012 à 18:04
salut,
tables:
normalement la maniere dont tu decide d'organiser tes données dans la base ne cause pas de probleme. Chaque webmaster a sa façon de creer ces tables, ces champs. mais le probleme est de ne pas creer des champs inutiles juste pour pas remplir la BDD.
petiti conseil: tes photos ont des noms du genre photo1, photo2.... pas besoin du champ PHOTO_NOM il suffit juste d'avoir l'id de la photo (PHOTO_ID) et tu as le nom. Quant au champ "PHOTO", il ne sert à rien si tu sais dans quel repertoire elles se trouvent.
php:
alors là je m'inquiete pour ton avenir avec cette façon de programmer :)

//on inclut conexdb.php ayant les variables $addresse $utilisateur $motdepasse

include("conexdb.php");
// Connexion à la base de données
mysql_connect($addresse,$utilisateur,$motdepasse);
// Sélection de la base
mysql_select_db("test");
// Ecriture requête SQL
$req_photo = "SELECT * FROM galerie_photo WHERE PHOTO_ID ='$PHOTO_ID'";
$nombre_image="SELECT COUNT(PHOTO_ID) FROM galerie_photo";


// Exécute la requête
$id_result_photo = mysql_query ($req_photo);
$nb_photo=mysql_query ($nombre_image);

// Récupère le résultat de la requête dans le tableau $photo
$photo = mysql_fetch_assoc($id_result_photo);
$nb=mysql_fetch_assoc($nb_photo);

echo "<html>";
echo "<head>";
echo "<title>".$photo["PHOTO_NOM"]."</title>";
echo "</head>";

echo "<table width='100%'>";
echo "<tr>";
if ($photo["PHOTO"]!=1)
{
$PHOTO_IDm=$PHOTO_ID-1;
echo "<td align='left'><a href='affiche.php?PHOTO_ID=".$PHOTO_IDm."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'><<</font></b></td>";
}
//afficher la photo
echo "<td ><img src='http://".$photo["PHOTO"]."'></td>";


if($photo["PHOTO"]<=$nb)
{
$PHOTO_IDp=$PHOTO_ID+1;
echo "<td align='right'><a href='affiche.php?PHOTO_ID=".$PHOTO_IDp."' target='_self'><b><font color='#999999' face='Arial, Helvetica, sans-serif'>>></font></b></td>";
}


echo "</tr>";
echo "</table>";
echo "</body>";
echo "</html>";

bon c'est vrai que je ne sais pas vraiment ce que tu cherches à faire, j'ai rajouté du code pour afficher l'image en cours.
0
Merci de ta réponse, mais j'ignore pourquoi ton script ne fonctionne pas non plus.
Saurais tu comment simplifier ce script ? Si tu dis "alors là je m'inquiete pour ton avenir avec cette façon de programmer :)" c'est que je cherche peut être trop compliqué..
0
Utilisateur anonyme
5 févr. 2012 à 19:12
qu'est ce qu'il affiche ?
0
Il affiche ceci :

Notice: Undefined variable: PHOTO_ID in C:\wamp\www\test\affiche.php on line 8
Notice: Undefined variable: PHOTO_ID in C:\wamp\www\test\affiche.php on line 29
Notice: Undefined variable: PHOTO_ID in C:\wamp\www\test\affiche.php on line 38
0
mais faut définir la variable $PHOTO_ID. Tu ne l'as pas fait ?
Au début du code
if(empty($_GET['PHOTO_ID'])){
$PHOTO_ID=1;
}else{
$PHOTO_ID=$_GET['PHOTO_ID'];
}
0
Il me reste l'erreur de la ligne 8,
A la ligne 8 il y a

$req_photo = "SELECT * FROM galerie_photo WHERE PHOTO_ID ='$PHOTO_ID'";

Je ne comprend pas pourquoi, pourrais tu m'expliquer stp ? Merci de ton aide !
0
Utilisateur anonyme
5 févr. 2012 à 21:56
la même erreur ? Mais c'est impossible si tu as rajouté le code précédent, c'est quasiment impossible.
ou peut etre l'incrémentation mais ça ne change rien :
$req_photo = "SELECT * FROM galerie_photo WHERE PHOTO_ID ='".$PHOTO_ID."'";
tu as peut être mal édité ton fichier refais un nouveau fichier php et tu colles le code en entier.
0
Je cherche juste à faire une galerie photo très simple, avec un bouton suivant et précédent pour passer d'une image à l'autre.
0
vsf90 Messages postés 26 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 13 février 2012 2
5 févr. 2012 à 22:36
En fait, je ne crois pas que tu auras besoin de php. Tu dois utiliser juste le javascript et utilisant la fonction getElementById tu passera d'une photo à une autre sans avoir à recharger chaque fois la page.
0
Je ne connais pas assez javascript pour ça, et un exercice que j'ai à faire mais avec lequel j'ai du mal.
0
vsf90 Messages postés 26 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 13 février 2012 2
5 févr. 2012 à 22:46
J'en suis sur que tu pourra l'apprendre rapidement, c'est un langage de programation comme php
0
vsf90 Messages postés 26 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 13 février 2012 2
5 févr. 2012 à 22:49
0
Merci :)
0
vsf90 Messages postés 26 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 13 février 2012 2
5 févr. 2012 à 22:56
de rien mon frére, si tu as besoin d'un conseil ou quoi d'autre vient me poser tes questions.
0
De Rien :) juste un truc pour finir. vsf90 a raison, c'est plus simple en javascript et tellement facile à réaliser. Des bibliotheques jquery peuvent donner encore plus d'effets diaporama et obtenir un résultat comparable à un diaporama fait en flash.
Mais bon comme tout le monde, c'est toujours le php avant le javascript. Mais ce n'est pas un bonne habitude car passer d'un langage qui n'est pas orienté objet vers un langage orienté objet est très difficile.
Bonne soirée et bonne continuation et n'oublie pas de marquer le sujet comme resolu
0
vsf90 Messages postés 26 Date d'inscription dimanche 15 janvier 2012 Statut Membre Dernière intervention 13 février 2012 2
5 févr. 2012 à 23:04
Oui eone2 a raison, avec le jquery c'est beaucoup mieux, mais pour utiliser le jquery il te faudra des notions de bases du javascript. Ce que je te propose c'est d'apprendre d'abord le javscript et aprés tu peux approfondir tes connaissances en Jquery.
0
Merci à vous deux, mais comme je vous l'ai dit, je ne choisis pas l'ordre des mes cours malheureusement, mais je compte bien apprendre le javascript.
J'espère malgré tout que ce post pourra être utile à d'autres personnes.
0