Page 1 sur 1

Erreur de syntaxe lors de la selection d'une table

Posté : 28 avr. 2011, 20:12
par colegos
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 !

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

Posté : 28 avr. 2011, 22:25
par ouckileou
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

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

Posté : 28 avr. 2011, 22:31
par ouckileou
Ah et merci d'utiliser les balises
 quand tu postes du code, j'ai edite pour cette fois.