Galerie photo php mysql
Résolu
Ambrosia
-
Ambrosia -
Ambrosia -
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
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:
- Galerie photo php mysql
- Galerie photo en ligne gratuite - Guide
- Google photo - Télécharger - Albums photo
- Comment masquer une photo dans la galerie - Guide
- Google maps photo maison - Guide
- Photo filtre 7 gratuit - Télécharger - Retouche d'image
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
<?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
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
Merci
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
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
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.
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.
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.
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.
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é..
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é..
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.
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.
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.
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.
essaye ce site. Il y a un cours détaillé :
https://openclassrooms.com/fr/courses/5543061-ecrivez-du-javascript-pour-le-web?archived-source=1916641
https://openclassrooms.com/fr/courses/5543061-ecrivez-du-javascript-pour-le-web?archived-source=1916641
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
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