Erreur de syntax dans requête mysql [Résolu/Fermé]

Signaler
Messages postés
70
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
19 novembre 2020
-
Messages postés
70
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
19 novembre 2020
-
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);

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);
Messages postés
30408
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 035
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
Messages postés
70
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
19 novembre 2020

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.
Messages postés
30408
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
30 novembre 2020
3 035
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 )
Messages postés
70
Date d'inscription
dimanche 9 août 2009
Statut
Membre
Dernière intervention
19 novembre 2020

Merci c'est résolu.

Un grand merci à vous tous.