Erreur de syntax dans requête mysql

Résolu/Fermé
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022 - 15 mars 2016 à 15:31
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022 - 15 mars 2016 à 17:29
Bonjour,

J'ai une erreur de syntax que je n'arrive pas à résoudre.

Cela m'affiche l'erreur suivante :


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 membre_tc="Dupont Louis"' at line 1



Je ne trouve pas l'erreur et cela est embétant car sa me bloque pour continuer.

Est-ce que vous pouvez voir si vous la voyez vous svp ?

Merci d'avance.

Voici la requête en question :

$requet="SELECT * FROM membres WHERE membre_fonction = 'Consultant' ORDER BY membre_nom, membre_prenom ASC"; 
if (isset($tc1)&&($tc1 != "")) 
	{ 
		$requet .= " WHERE membre_tc=\"$tc1\""; 
	}

$sql = mysql_query($requet) or die(mysql_error()); 

$total = mysql_num_rows($sql);
A voir également:

4 réponses

Si tu fais ça, tu auras deux clauses "WHERE"...
Essaies plutôt :


$requet="SELECT * FROM membres WHERE membre_fonction = 'Consultant' ORDER BY membre_nom, membre_prenom ASC";
if (isset($tc1)&&($tc1 != ""))
{
$requet .= " AND membre_tc=\"$tc1\"";
}

$sql = mysql_query($requet) or die(mysql_error());

$total = mysql_num_rows($sql);
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 mars 2016 à 15:39
Bonjour,

1 - Tu utilises l'ancienne extension MYSQL. Je t'invite fortement à passer à MYSQLI ou la PDO.
Voir ceci :

2 - Fais donc un ECHO de ta requête

echo "La requete est :" .$requet;
$sql = mysql_query($requet) or die(mysql_error()); 


Tu devrais rapidement voir l'erreur..... ( comme le fait de vouloir mettre deux WHERE dans une même requête par exemple .....)

PS : Quand tu as un souci de requête... toujours en faire un ECHO ... puis la tester DIRECTEMENT dans la BDD. cela t'affiche les erreurs concernées.


PS: Qu'en est-il de ta question précédente : https://forums.commentcamarche.net/forum/affich-33285070-php-formulaire-calcul-de-conge
0
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
15 mars 2016 à 17:08
Maintenant que j'ai fais cette modification sa m'affiche l'erreur suivante :


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 'AND membre_tc="Dupont Louis"' at line 1


Et pour mon autre question c'est pas encore résolu.

Merci.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
15 mars 2016 à 17:22
Essayes ça :

$strAnd = !empty($tc1) ?  " AND membre_tc='$tc1' " : ''; 
$requet="SELECT * FROM membres 
                  WHERE membre_fonction = 'Consultant' 
                     $strAnd
                   ORDER BY membre_nom, membre_prenom ASC"; 

$sql = mysql_query($requet) or die(mysql_error()); 
$total = mysql_num_rows($sql);



nb: !empty équivaut à ( ISSET + non vide )
-1
Tzmagnum Messages postés 126 Date d'inscription dimanche 9 août 2009 Statut Membre Dernière intervention 10 mai 2022
15 mars 2016 à 17:29
Merci c'est résolu.

Un grand merci à vous tous.
0