8797 sujets

Développement web côté serveur, CMS

Bonjour,
je veux transmettre une variable dans un lien. Voilà le code que j'utilise :

<?php
echo '<a href="t.php?id='.$donnees['id'].'">'.$donnees['nom'].'</a>';
?>

Et voilà le code que j'utilise pour récupérer la variable :

$reponse = mysql_query("SELECT nom, auteur, image, FROM downloads WHERE `id` = '$_GET [''.$donnees['id'].'']'");

Il y a une erreure de parse error.
La voilà :
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\documents and settings\laurence\mes documents\clubgta\t.php on line 15

Quelqu'un peut me dire comment régler mon problème?
Merci
$reponse = mysql_query('SELECT nom, auteur, image, FROM downloads WHERE id=\''.$_GET['id'].'\'');
merci pour ta réponse mais il y a un bug :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\laurence\mes documents\clubgta\t.php on line 18

Voici ce qui s'affiche avec mysql error :

Erreur de syntaxe près de 'FROM downloads WHERE id='1'' à la ligne 1

Comment régler ce probleme?
Il me semble que ceci serait plus correct :

$reponse = mysql_query('SELECT nom, auteur, image, FROM downloads WHERE id= ''' .$_GET['id']. "'');


Code dans lequel tu as un ' en ouverture et en fermeture du SELECT (' SELECT............ ')

Puis ta variable est d'abord entourée de la même façon : 'variable'

Mais comme ta variable est une variable php elle est ensuite introduite ainsi :
" .$variable. ".

Et je ne vois pas la nécessité des échappements \ !
Modifié par jcm (15 Jul 2005 - 07:03)
Dans mon exemple les '' ne sont pas des quotes doubles mais deux quotes simples qui se suivent. Fallait faire un copier/coller si tu avais un doute.
Le code à afbilou est correct, l'erreur vient en fait de
SELECT nom, auteur, image, FROM [...]
Il y a une virgule après image, alors qu'il n'y a pas d'autre champ... il faut la supprimer.

Personellement j'utilise simplement cette syntaxe pour mes requêtes :
'SELECT champ FROM table WHERE nom = "'.$var.'"'


Le code à jcm produira une parse error de toutes façons.