Fatal error
Résolu
papyclic
Messages postés
446
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour
S'ils vous plait pouvez-vous m'aider, J'ai une erreur que je n'arrive pas à résoudre, lors d'une requète pour l'affichage de photos.
C'est très sympa, merci beaucoup
S'ils vous plait pouvez-vous m'aider, J'ai une erreur que je n'arrive pas à résoudre, lors d'une requète pour l'affichage de photos.
C'est très sympa, merci beaucoup
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
$rid_album = isset($_GET['id_photo']); $sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo = $rid_album"; $requete = $bdd->prepare($sql); $requete->execute(); while($donnees = $requete->fetch()) { $lieu_photo = $donnees['lieu_photo']; $date_photo = $donnees['date_photo']; $nom_photo = $donnees['nom_photo'];
12 réponses
Bonjour,
Je pense que l'erreur se situe au niveau de la variable $rid_album :
Et qu'il faudrait corriger la requête comme ceci :
Cordialement.
Je pense que l'erreur se situe au niveau de la variable $rid_album :
$sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo = $rid_album";
Et qu'il faudrait corriger la requête comme ceci :
$sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo=".$rid_album;
Cordialement.
Bonjour
Merci pour ton aide, malheureusement j'ai toujours cette erreur, oui tu as raison cela vient bien de la variable $rid_album
Il y a plusieurs jours que je suis dessus je ne vois pas du tout.
Merci beaucoup de votre aide.
Merci pour ton aide, malheureusement j'ai toujours cette erreur, oui tu as raison cela vient bien de la variable $rid_album
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
Il y a plusieurs jours que je suis dessus je ne vois pas du tout.
Merci beaucoup de votre aide.
'lut,
Dans ta requête SQL, ce que tu veux, c'est le contenu de la variable elle-même, qu'on ne met absolument jamais directement dans la requête; on se sert de requêtes préparées:
issetrenvoie juste un booléen disant si la variable est définie ou non.
Dans ta requête SQL, ce que tu veux, c'est le contenu de la variable elle-même, qu'on ne met absolument jamais directement dans la requête; on se sert de requêtes préparées:
if (isset($_GET['id_photo'])) { $rid_album = $_GET['id_photo']; $sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo = :rid_album"; $requete = $bdd->prepare($sql); $requete->execute(array( ":rid_album" => $rid_album )); while($donnees = $requete->fetch()) { $lieu_photo = $donnees['lieu_photo']; $date_photo = $donnees['date_photo']; $nom_photo = $donnees['nom_photo'];
Bonjour
Maintenant lors de l'affichage des photos, la page est blanche aucun affichage et aucune erreur retournée, c'est vraiment incroyable.
dans l'url l'id de la photo est correct
J'ai bien fait copie/collé ta correction.
Dans ma BDD j'ai bien inséré 1 photo dans 1 dossier pourtant
et dans mon dossier d'arborescence j'ai bien la photo

je te met le script complet
Merci encore de ton aide très précieuse
Maintenant lors de l'affichage des photos, la page est blanche aucun affichage et aucune erreur retournée, c'est vraiment incroyable.
dans l'url l'id de la photo est correct
index.php?body=nos_photos&type=public&id_photo=1
J'ai bien fait copie/collé ta correction.
Dans ma BDD j'ai bien inséré 1 photo dans 1 dossier pourtant
et dans mon dossier d'arborescence j'ai bien la photo


je te met le script complet
<?php if (isset($_GET['id_photo'])) { $rid_album = $_GET['id_photo']; $sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo = :rid_album"; $requete = $bdd->prepare($sql); $requete->execute(array( ":rid_album" => $rid_album )); while($donnees = $requete->fetch()) { $lieu_photo = $donnees['lieu_photo']; $date_photo = $donnees['date_photo']; $nom_photo = $donnees['nom_photo']; ?> <div id="Nos_Photos"> <img src="galerie_photo/<?php echo $nom_photo; ?>" /> <br/> <b><?php echo $lieu_photo ?></b> <br/> <b><?php echo dateFR($date_photo) ?></b> </div> <?php } } ?>
Merci encore de ton aide très précieuse
Hum, étrange... La requête ne renverrait donc rien? À en juger par le nom des colonnes de ta table, il y a peut-être un mélange des noms de paramètres: j'ai nommé
Après, comme je n'ai pas le fonctionnement du formulaire et ce que c'est censé faire, dur de trouver ce qui cloche...
$rid_albumle contenu de
$_GET['id_photo'], en soi c'est sans incidence, mais soit on utilise la mauvaise variable GET, soit on filtre selon le mauvais champ de ta table.
Après, comme je n'ai pas le fonctionnement du formulaire et ce que c'est censé faire, dur de trouver ce qui cloche...
Bonjour,
Dans l'url tu fais passer l'id_photo 1
Et si je regarde l'extrait de la table mysql que tu nous présentes, il n'y a pas d'id_photo = 1 mais un id_photo = 17. J'ai comme l'impression que tu mélanges dans ta tête la colonne id_photo avec celle de rid_album qui elle, comporte bien 1 mais dans la requête SQL tu fais la clause WHERE sur l'id_photo! Tu vois où je veux en venir...
Cordialement.
Dans l'url tu fais passer l'id_photo 1
index.php?body=nos_photos&type=public&id_photo=1
Et si je regarde l'extrait de la table mysql que tu nous présentes, il n'y a pas d'id_photo = 1 mais un id_photo = 17. J'ai comme l'impression que tu mélanges dans ta tête la colonne id_photo avec celle de rid_album qui elle, comporte bien 1 mais dans la requête SQL tu fais la clause WHERE sur l'id_photo! Tu vois où je veux en venir...
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Veuillez m'excuser je suis toujours dans une impasse total, impossible de comprendre mon soucis.
Pouvez-vous m'aider s'ils vous plait.
Je vous remercie.
Voici mes 2 tables tb_album et tb_photo et mon dossier de l'arborescence où il y a la photo


fichier pour l'affichage des albums
fichier pour l'affichage des photos lequel me génére une erreur
l'erreur retournée
par contre pour l'ajout des albums et l'ajout des photos tout marche bien
Veuillez m'excuser je suis toujours dans une impasse total, impossible de comprendre mon soucis.
Pouvez-vous m'aider s'ils vous plait.
Je vous remercie.
Voici mes 2 tables tb_album et tb_photo et mon dossier de l'arborescence où il y a la photo



fichier pour l'affichage des albums
<div id="NosAlbums"> <?php $sql = "SELECT id_album, annee_album FROM tb_album ORDER BY annee_album ASC"; $requete = $bdd->prepare($sql); $requete->execute(); while ($donnees = $requete->fetch()) { $rid_album = $donnees['id_album']; $annee_album = $donnees['annee_album']; $sql2 = "SELECT * FROM tb_photo WHERE id_photo = $rid_album"; $requete2 = $bdd->prepare($sql2); $requete2->execute(); ?> <a href="./index.php?body=nos_photos&type=public&id_album=<?php echo $rid_album; ?>"> <div id="Nos_Albums"> <img src="image/dossier.png" /> <br/> <b><?php echo $annee_album ?></b> </div> </a> <?php } ?> <div class="clear"></div> </div>
fichier pour l'affichage des photos lequel me génére une erreur
<?php if (isset($_GET['id_photo'])) { $rid_album = $_GET['id_photo']; $sql = "SELECT id_photo, lieu_photo, date_photo, nom_photo FROM tb_photo WHERE id_photo = :rid_album"; $requete = $bdd->prepare($sql); $requete->execute(array( ":rid_album" => $rid_album )); while($donnees = $requete->fetch()) { $lieu_photo = $donnees['lieu_photo']; $date_photo = $donnees['date_photo']; $nom_photo = $donnees['nom_photo']; ?> <div id="Nos_Photos"> <img src="galerie_photo/<?php echo $nom_photo; ?>" /> <br/> <b><?php echo $lieu_photo ?></b> <br/> <b><?php echo dateFR($date_photo) ?></b> </div> <?php } } ?>
l'erreur retournée
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
par contre pour l'ajout des albums et l'ajout des photos tout marche bien
Bonjour.
As tu testé ta requête en direct dans ta BDD pour voir si elle fonctionne correctement ?
c'est à dire.. en remplaçant la variable par un ID existant (le 17 par exemple)
NB : J'ai bien dit en DIRECT DANS LA BDD (c'est à dire .. via phpmyadmin et non dans le code PHP ! )
As tu testé ta requête en direct dans ta BDD pour voir si elle fonctionne correctement ?
c'est à dire.. en remplaçant la variable par un ID existant (le 17 par exemple)
SELECT id_photo , lieu_photo , date_photo , nom_photo FROM tb_photo WHERE id_photo = 17
NB : J'ai bien dit en DIRECT DANS LA BDD (c'est à dire .. via phpmyadmin et non dans le code PHP ! )
Bonjour
Je vous envoie une requète qui devrais me retourner une photo, c'est également lié avec mes posts plus haut.
Pourquoi à votre avis cela ne m'affiche rien.
Merci
Ci-dessous la requète.
Je vous envoie une requète qui devrais me retourner une photo, c'est également lié avec mes posts plus haut.
Pourquoi à votre avis cela ne m'affiche rien.
Merci
Ci-dessous la requète.
$sql2 = "SELECT url FROM tb_photo2"; $requete2 = $bdd->prepare($sql2); $donnees2 = $requete2->execute(); $resultat = $donnees2['url']; ?> <div id="Nos_Albums"> <img src="galerie_photo/<?php echo $resultat; ?>" /> <br/> </div>
Bonjour
Si je fait ça l'affichage c'est pareil aucune image n'est retournée
Merci
Si je fait ça l'affichage c'est pareil aucune image n'est retournée
Merci
<div id="NosAlbums"> <?php $sql = "SELECT id, name FROM tb_album2"; $requete = $bdd->prepare($sql); $requete->execute(); while ($donnees = $requete->fetch()) { $album_id = $donnees['id']; $album_name = $donnees['name']; $sql2 = "SELECT url FROM tb_photo2 WHERE album_id = $album_id"; $requete2 = $bdd->prepare($sql2); $donnees2 = $requete2->execute(); $resultat = $donnees2['url']; ?> <a href="./index.php?body=nos_photos2&type=public&id=<?php echo $album_id; ?>"> <div id="Nos_Albums"> <img src="galerie_photo/<?php echo $resultat; ?>" /> <br/> <b><?php echo $album_name ?></b> </div> </a> <?php } ?> <div class="clear"></div> </div>
Essayes donc ça :
- Utilisation d'une jointure dans la requête (pour n'en faire qu'une)
- Création des DIV / IMG .. dans un echo ..(pour éviter d'ouvrir fermer des balises PHP partout dans le code html...)
- Mise en place d'un id unique pour les div créés dans la boucle (car l'intérêt d'un ID .. c'est d'être UNIQUE ! )
Cordialement,
Jordane
- Utilisation d'une jointure dans la requête (pour n'en faire qu'une)
- Création des DIV / IMG .. dans un echo ..(pour éviter d'ouvrir fermer des balises PHP partout dans le code html...)
- Mise en place d'un id unique pour les div créés dans la boucle (car l'intérêt d'un ID .. c'est d'être UNIQUE ! )
<div id="NosAlbums"> <?php $sql = "SELECT A.id , A.name , P.url FROM tb_album2 A LEFT JOIN tb_photo2 P ON P.album_id = A.id"; $requete = $bdd->prepare($sql); $requete->execute(); while ($donnees = $requete->fetch()) { $album_id = $donnees['id']; $album_name = $donnees['name']; $img = $donnees2['url']; echo "<a href='./index.php?body=nos_photos2&type=public&id=".$album_id."'> <div id='Albums_".$album_id."'> <img src='galerie_photo/".$img."' alt='".$img."'></img> <br/> <b>".$album_name."</b> </div> </a>"; } ?> <div class="clear"></div> </div>
Cordialement,
Jordane
Bonjour,
J'ai essayé tel quel ta requète avec jointure, malheureusement la page est blanche aucun affichage.
J'ai fait la try=>catch et rajouter le "WHERE id = $album_id";" l'erreur est la même
C'est tout de même incroyable, je ne sais plus quoi faire j'ai utilisé tout ce que je pouvais faire.
les photos sont bien présentent dans le dossier "galerie_photo" à la racine du site.
Si tu as encore un peu de temps pour m'aider.
Je te remercie.
J'ai essayé tel quel ta requète avec jointure, malheureusement la page est blanche aucun affichage.
J'ai fait la try=>catch et rajouter le "WHERE id = $album_id";" l'erreur est la même
Erreur : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 6
C'est tout de même incroyable, je ne sais plus quoi faire j'ai utilisé tout ce que je pouvais faire.
les photos sont bien présentent dans le dossier "galerie_photo" à la racine du site.
Si tu as encore un peu de temps pour m'aider.
Je te remercie.
Bonjour
Ne tiens pas compte de mon précédent post, ça y est ta requète fonctionne l'image s'affiche bien.
Je te remercie nickel
Cordialement.
Ne tiens pas compte de mon précédent post, ça y est ta requète fonctionne l'image s'affiche bien.
Je te remercie nickel
Cordialement.