Erreur syntaxe forum PHP
Résolu/Fermé
zack5163v
Messages postés
25
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
24 septembre 2016
-
Modifié par jordane45 le 29/03/2016 à 19:36
zack5163v Messages postés 25 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 24 septembre 2016 - 29 mars 2016 à 20:40
zack5163v Messages postés 25 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 24 septembre 2016 - 29 mars 2016 à 20:40
A voir également:
- Erreur syntaxe forum PHP
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Forum iptv ✓ - Forum Box et Streaming vidéo
1 réponse
jordane45
Messages postés
38359
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
29 décembre 2024
4 720
Modifié par jordane45 le 29/03/2016 à 19:50
Modifié par jordane45 le 29/03/2016 à 19:50
Bonjour,
Il semble donc que ce soit ta requête qui pose problème
Déjà ... (ça n'a rien à voir avec le souci..mais bon...), commence par récupérer PROPREMENT les variables AVANT de les utiliser. (surtout pour les GET ou les POST
Comme ceci :
Tu peux les utiliser dans ton code :
$topic_sql = $bdd->prepare("SELECT * FROM topics WHERE forum_id = '$id' AND sticked = 0 ORDER BY id desc LIMIT ?,?");
$topic_sql->execute(array($depart,$topicsParPage));
</code>
Ensuite, prends l'habitude de séparer les "requête" de son exécution afin de pouvoir en faire un echo en cas de problème. ( avec un bloc try/catch c'est encore mieux)
comme ceci :
Si l'erreur persiste ... tu prends la requête qui va s'afficher grâce au debug (le catch) ... tu remplaces les variables par leur valeurs (également grâce au debug...)
et tu testes cette requête DIRECTEMENT dans ta BDD.
Là .. tu devrais être en mesure de comprendre l'erreur.
Cordialement,
Jordane
Il semble donc que ce soit ta requête qui pose problème
$topic_sql = $bdd->prepare("SELECT * FROM topics WHERE forum_id = '".$_GET['id']."' AND sticked = 0 ORDER BY id desc LIMIT ?,?"); $topic_sql->execute(array($depart,$topicsParPage));
Déjà ... (ça n'a rien à voir avec le souci..mais bon...), commence par récupérer PROPREMENT les variables AVANT de les utiliser. (surtout pour les GET ou les POST
Comme ceci :
$id = !empty($_GET['id']) ? $_GET['id'] : NULL;
- j'ai mis comme valeur par défaut "null" .. mais tu peux mettre autre chose.
Tu peux les utiliser dans ton code :
$topic_sql = $bdd->prepare("SELECT * FROM topics WHERE forum_id = '$id' AND sticked = 0 ORDER BY id desc LIMIT ?,?");
$topic_sql->execute(array($depart,$topicsParPage));
</code>
Ensuite, prends l'habitude de séparer les "requête" de son exécution afin de pouvoir en faire un echo en cas de problème. ( avec un bloc try/catch c'est encore mieux)
comme ceci :
//---------------------------------------------------------------------------------------// //On prépare la requete et les variables //---------------------------------------------------------------------------------------// $sql = "SELECT * FROM topics WHERE forum_id = :id AND sticked = 0 ORDER BY id DESC LIMIT :depart,:topicsParPage "; $a_datas = array(':id'=>$id , ':depart'=>$depart ,':topicsParPage'=>$topicsParPage); //---------------------------------------------------------------------------------------// //on exécute la requête dans un bloc try/catch pour intercepter les erreurs // et faire du debug en affichant la requête en cause et les variables : //---------------------------------------------------------------------------------------// try{ $topic_sql = $bdd->prepare($sql); $topic_sql->execute($a_datas); }catch(Exception $e){ // en cas d'erreur echo "<br><b>Erreur ! </b>" . $e->getMessage();; echo "<br><b>Requete : </b><br>".$sql."<br>"; echo "<br><b>Variables : </b><br>"; print_r($a_datas); }
Si l'erreur persiste ... tu prends la requête qui va s'afficher grâce au debug (le catch) ... tu remplaces les variables par leur valeurs (également grâce au debug...)
et tu testes cette requête DIRECTEMENT dans ta BDD.
Là .. tu devrais être en mesure de comprendre l'erreur.
Cordialement,
Jordane
29 mars 2016 à 20:18
Quelqu'un pourrait m'expliquer car j'ai pas compris pourquoi cette erreur quand je faisais cela:
29 mars 2016 à 20:20
Par contre.. tu n'as tenu compte d'aucune de mes remarques.... ni -même pris la peine d'essayer le code que je t'ai donné !
Modifié par zack5163v le 29/03/2016 à 20:44