Page 1 sur 1

unexpected identifier dans SELECT

Posté : 02 juil. 2025, 14:21
par noradan
Bonjour
je ne comprends pas pourquoi j'ai "unexpected identifier adresse" dans la ligne suivante

Code : Tout sélectionner

SELECT adresse, FROM groupe_index WHERE groupe LIKE 'airbag';
Evidemment j'ai vérifié qu'il n'y avait pas d'erreur dans le nom "adresse" (du genre "espace")

Pourtant, ça fonctionne dans

Code : Tout sélectionner

$stmt = mysqli_prepare($bdd, "SELECT adresse FROM groupes_index WHERE groupe LIKE ?");
où bien entendu le ? est remplacé par 'airbag' après

Code : Tout sélectionner

mysqli_stmt_execute($stmt, [$_GET["Mot"]]);
Je ne vois pas pourquoi ça marche ici et pas là
Merci

Re: unexpected identifier dans SELECT

Posté : 02 juil. 2025, 17:06
par or 1
il y a pourtant une différence qui saute aux yeux.

Re: unexpected identifier dans SELECT

Posté : 03 juil. 2025, 13:59
par noradan
si c'est de la virgule dont tu parle ça ne change rien !
avec ou sans c'est pareil.

(cette virgule se trouve dans plusieurs tuto même avec une seule colonne raison pour laquelle je l'ai mise après coup)

Re: unexpected identifier dans SELECT

Posté : 03 juil. 2025, 17:18
par or 1
on peut avoir le code qui retourne cette erreur dans son contexte ?

Re: unexpected identifier dans SELECT

Posté : 05 juil. 2025, 17:15
par noradan
voilà

Code : Tout sélectionner

$bdd=mysqli_connect('localhost', 'root', '','proglyrics') or die ("Connexion au serveur impossible"); $groupe=$_GET['Mot']; SELECT adresse FROM groupe_index WHERE groupe LIKE 'airbag';
voilà ! et je reçois
"Parse error: syntax error, unexpected identifier "adresse" in H:\proglyrics\recherche.php on line 16"

D'accord je débute et je ne comprends pas grand chose mais là ...

Re: unexpected identifier dans SELECT

Posté : 05 juil. 2025, 17:56
par or 1
que faites-vous avec
$stmt = mysqli_prepare($bdd, "SELECT adresse FROM groupes_index WHERE groupe LIKE ?");
mysqli_stmt_execute($stmt, [$_GET["Mot"]]);

et avec
SELECT adresse FROM groupe_index WHERE groupe LIKE 'airbag';
?

Re: unexpected identifier dans SELECT

Posté : 06 juil. 2025, 16:13
par two3d
il faut utiliser "SELECT adresse FROM groupe_index WHERE groupe LIKE 'airbag'; " avec mysqli_query :

Code : Tout sélectionner

mysqli_query($bdd, "SELECT adresse FROM groupe_index WHERE groupe LIKE 'airbag'; ");
Ton LIKE est inutile et prend des ressources pour rien si tu n'utilise pas de %, fait directement avec =.

WHERE groupe = 'airbag'

Re: unexpected identifier dans SELECT

Posté : 10 juil. 2025, 17:04
par noradan
En fait j'ai pigé le problème. Je faisais la même faute à mes tout début entre php et html. Ici c'est entre php et sql. "SELECT" n'étant PAS une commande php, pour pouvoir être exécutée il faut un truc qui en fasse quelque chose de compréhensible pour lui et c'est le role de "mysqli".

Le problème que j'ai est le suivant

Comment utiliser une requête préparée avec MATCH ?

Le code

Code : Tout sélectionner

$stmt = mysqli_prepare($bdd, "SELECT adresse FROM groupes_index WHERE groupe LIKE ?");
Fait ce que je veut mais avec un seul mot provenant d'un formulaire de recherche et qui remplace le "?" grace à

Code : Tout sélectionner

mysqli_stmt_execute($stmt, [$_GET["Mot"]]);
D'après mon expérience "AGAINST ?" ne fonctionne pas.
Que doit-on écrire pour que

Code : Tout sélectionner

$stmt = mysqli_prepare($bdd, "SELECT adresse FROM groupes_index WHERE MATCH(groupe) AGAINST ?");
fonctionne ?

Re: unexpected identifier dans SELECT

Posté : 10 juil. 2025, 19:21
par two3d
Passe en résolu et ouvre un nouveau sujet stp pour demander comment fonctionne mysqli_prepare et AGAINST.