8791 sujets

Développement web côté serveur, CMS

Bonjour,

pourriez-vous m'aider s'il vous plaît j'ai un soucis avec ce code (soucis ligne if (isset($_GET["id"])) du départ my sql me met : 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 'where ad_id=''' at line 1)

Pour info c'est une partie de ma page admin.php :

<b>Modifier les annonces</b>
<br><br>

<?


if (isset($_GET["id"]))
{

$id=$_GET["id"];
$plan=$_GET["plan"];
$url=$_GET["url"];
$description=$_GET["description"];

$query = "UPDATE ads SET ad_url='$url', ad_description='$description', clicksleft='$clicksleft', where ad_id='$id'";
mysql_query($query) or die(mysql_error());

echo "<font color=\"#4cbacb\"><b>Annonce modifiée avec succès.</b></font><br><br>";


}

if (isset($_GET["id"]))
{

$id=$_GET["id"];
if ($_GET["option"]=="edit")
{

?>


<?

$tablae = mysql_query("SELECT * FROM ads where ad_id='$id'"); 

while ($registroe = mysql_fetch_array($tablae)) { 


?>


<form method="post" action="admin.php?op=2">

Id: <input type="hidden" name="id" value="<?= $registroe["id"] ?>"><?= $registroe["ad_id"] ?><br>
Clics restant: <input type="text" name="clicksleft" value="<?= $registroe["clicksleft"] ?>"><br>
URL: <input type="text" name="url" value="<?= $registroe["ad_url"] ?>"><br>
Description: <input type="text" name="description" value="<?= $registroe["ad_description"] ?>"><br>
<br>

<input type="submit" value="Sauvegarder">

</form>
<br><br>
<?
}
?>

<?

}

if ($_GET["option"]=="delete"){

$queryz = "DELETE FROM ads where ad_id='$id'";
mysql_query($queryz) or die(mysql_error());

echo "<font color=\"#cc0000\"><b>Annonce supprimée.</b></font><br><br>";
}


}
?>

<table>
<tr>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Id
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
URL
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Description
</b></font></td>
<td bgcolor="#000000"  style="border:1px #4cbacb solid"><font size="2" face="verdana" color="#4cbacb"><b>
Clics restant
</b></font></td>
</tr>
<?

$tabla = mysql_query("SELECT * FROM ads where active='1' ORDER BY ad_id ASC"); 

while ($registro = mysql_fetch_array($tabla)) {


echo "
<tr>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_id"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_url"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["ad_description"] ."
</font></td>
<td bgcolor=\"#000000\" style=\"border:1px #4cbacb solid\"><font size=\"2\" face=\"verdana\" color=\"#ffffff\">
". $registro["clicksleft"] ."
</font></td>
<td bgcolor=\"#000000\">";
?>
<form method="post" action="admin.php?op=2&id=<?= $registro["ad_id"] ?>&option=edit">
<input type="submit" value="Editer">
</form>
</font></td>
<td bgcolor=\"#000000\">
<form method="post" action="admin.php?op=2&id=<?= $registro["ad_id"] ?>&option=delete">
<input type="submit" value="Supprimer">
</form>
</td>
</tr>

<?

}



?>
</table>

<?


merci de m'aider
Modifié par jessjc (05 Jul 2011 - 21:35)
Salut

À $query = UPDATE, tes variable n'auront pas d'apostrophe :

» ad_url=$url » ad_description=$description » WHERE ad_id=$id.

..
Modifié par zardoz (03 Jul 2011 - 22:33)
Salut, Comme tu dois t'en douter, la grande majorité des sujets ici (voire tous) traitent de "problèmes".

Ton sujet va donc malheureusement vite se perdre dans la masse, tout simplement parce que tu ne donnes pas assez de précision dans ton titre Smiley decu

Par ailleurs, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est d'afficher les codes et exemples proprement à l'aide des boutons [ code]... ici ton code HTML, CSS, PHP, etc.[ /code] (sans espace).

Je te remercie par avance de bien vouloir éditer ton message afin de le rendre conforme à cette règle. Smiley cligne

Bonne continuation Smiley smile

upload/1-code.gif
Et en tous cas la virgule avant le where est de trop

côté concaténation php je suis pas sûre , il y a un délimiteur de chaîne qui permet que les variables soient interprétées mais j'oublie tout le temps quel délimiteur est concerné ...
Modérateur
Ca lu,

A vue de nez, je dirai ceci :


... clicksleft='$clicksleft'  where ...


au lieu de (la virgule) :

clicksleft='$clicksleft', where
Modérateur
Arialia a écrit :
Et en tous cas la virgule avant le where est de trop ...

arf, tu as été plus réactive que moi sur ce coup ^^

Arialia a écrit :
...côté concaténation php je suis pas sûre , il y a un délimiteur de chaîne qui permet que les variables soient interprétées mais j'oublie tout le temps quel délimiteur est concerné ...


Tu parles des doubles quotes ou sinon je ne comprends pas bien ce que tu veux dire.
Alors merci je n'ai plus l'erreur, c'était bien la virgule qui était de trop entre '$clicksleft', where

Merci à tous!
Salut

Par un exemple sous PHP avancé avec un SELECT »

$id_ar = (int) $_GET['id_article'];
$sql = "SELECT titre, texte FROM article WHERE id_article = $id_ar";

Sans apostrophe simple autour de la variable. Dû moins dans l'exemple.

Oups grillé :
..
Modifié par zardoz (04 Jul 2011 - 00:33)
Donc c'est bien ça c'est la double quote qui évite la concaténation , contente d'avoir pu t'aider jessjc

comme l'identifiant est un entier il n'a pas besoin de simple quote zardoz Smiley cligne
Modifié par Arialia (04 Jul 2011 - 01:02)