Erreur de syntaxe lors de la selection d'une table

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Erreur de syntaxe lors de la selection d'une table

Re: Erreur de syntaxe lors de la selection d'une table

par ouckileou » 28 avr. 2011, 22:31

Ah et merci d'utiliser les balises
 quand tu postes du code, j'ai edite pour cette fois.

Re: Erreur de syntaxe lors de la selection d'une table

par ouckileou » 28 avr. 2011, 22:25

Tu as un sujet pour t'aider a debugger du SQL execute via PHP: sql-bases-donnees/php-sql-etapes-suivre ... 19378.html

Mais la comme tu as deja fait afficher le SQL que tu executes, on voit qu'elle se termine par le =, et qu'il manque une valeur pour ta clause WHERE

A quoi servent les accolades dans ta requete ? Affiche toutes les variables recuperees via GET pour verifier que tu recuperes bien l'id deja:
echo '<pre>';
print_r($_GET);
echo '</pre>';
Au passage, mettre directement la variable GET dans ta requete ca n'est bon, si je la change dans l'url j'y mets ce que je veux et potentiellement je peux executer des trucs sur ta base...

Lis ce sujet par exemple: http://www.siteduzero.com/tutoriel-3-37 ... s-sql.html

Erreur de syntaxe lors de la selection d'une table

par colegos » 28 avr. 2011, 20:12

Bonjour à tous, aprés des heures de prise de bec j'ai décidé de m'en remettre a vous, je tiens aussi a vous dire que c'est la premiere fois que je script en php et la vraiment je trouve pas mon schmilblik même sur google... :
- Voila pour faire simple le projet c'est de faire un system de news gerer totalement en php.
J'ai donc creer une bdd et dedan une table qui s'appelle "news" et qui contien 4 champs (titre,contenu,date,id).Ensuite j'ai une premiere page(allnews.php) ou je liste toute les news et ou il est possible de cliquer pour les lire dans ma deuxieme page(1news.php). Mais lorsque je veut afficher la page 1news.php et que je veut recuperer l'id il me marque : "Erreur SQL !
SELECT * FROM news WHERE id=
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"

Je vous donne donc le code de mes 2 pages
-- allnews.php :
<?php
/*Connexiona  la bdd*/
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);
/* je me connecte a ma table news et je met un code erreur*/
$sql="SELECT * FROM news ORDER BY id DESC";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
/*La je fait une boucle pour lister les news et j'enregistre l'id de la news*/
while($data=mysql_fetch_assoc($req)){
echo"- <a href=\"1news.php?id={$data["id"]}\">{$data["titre"]}</a><br />";
}
?>
-- 1news.php :
<?php
require "config.php";
mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
mysql_select_db(DB_BDD);

/*voici l'erreur ligne 1*/
$sql="SELECT * FROM news WHERE id={$_GET["id"]}";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
while($data=mysql_fetch_assoc($req)){
echo"<h3>{$data["titre"]} :</h3>";
echo"<p>{$data["contenu"]}</p>";
echo"<p align\"right\">".date("j/n/Y G:i",strtotime($data["date"]))."</p>";
}
?>

Je vous remerci d'avance pour toute vos reponses !