Erreur de syntax dans requête mysql

Résolu
Tzmagnum Messages postés 132 Statut Membre -  
Tzmagnum Messages postés 132 Statut Membre -
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

  1. Utilisateur anonyme
     
    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
  2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
  3. Tzmagnum Messages postés 132 Statut Membre
     
    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
  4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    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
    1. Tzmagnum Messages postés 132 Statut Membre
       
      Merci c'est résolu.

      Un grand merci à vous tous.
      0