Probleme de concentenation

Bonjour,

un problème de concatenation

     $sql = 'SELECT count(*) as nb FROM agent WHERE nom ="'.mysql_escape_string($_POST['nom']).'"' && 'prenom ="'.mysql_escape_string($_POST['prenom']).'"'';


erreur

Parse error: parse error in C:\wamp\www\internetService\modifierAgent.php on line 18


4 réponses

  • Votes
  • Date
  • Date décroissante
  1. bonjour,
    les deux quottes viennent après une quotte

    essaye ceci:

    $sql = "SELECT count(*) as nb FROM agent WHERE nom =' ".mysql_escape_string($_POST['nom'])." ' AND prenom =' ".mysql_escape_string($_POST['prenom'])." ' '';

    Courage
    1. Merci NDOUKI
      mais en voilà une autre
      Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING' in C:\wamp\www\internetService\modifierAgent.php on line 21

        if ($data['nb'] == 0) {  
           
                   $sql = 'UPDATE 'agent' SET ('id', 'nom', 'prenom','privilege','email', 'telephone', 'fonction_tech', 'update_date')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['privilege']).'", "'.mysql_escape_string($_POST['email']).'","'.mysql_escape_string($_POST['telephone']).'", "'.mysql_escape_string($_POST['fonction_tech']).'","'.update_date('Y-m-d h:i:s').'")';  
                      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
      }
    2. Bonjour,
      Il suffit de mettre des doubles quotes pour englober le tout.
       if ($data['nb'] == 0) {  
           
                   $sql = "UPDATE 'agent' SET ('id', 'nom', 'prenom','privilege','email', 'telephone', 'fonction_tech', 'update_date')  VALUES(NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['privilege']).'", "'.mysql_escape_string($_POST['email']).'","'.mysql_escape_string($_POST['telephone']).'", "'.mysql_escape_string($_POST['fonction_tech']).'","'.update_date('Y-m-d h:i:s').'")";  
                      mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());  
      }
      
    3. Melooo tout est fait mais il y a maintenant une erreur sql sais-tu de quoi il s'agit ici ?

      Erreur SQL !
      1
      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 '1' at line 1
    4. Voici la fonction sql que j'ai utilisé pour faire le updat d'une table
       $sql = 'UPDATE 'agent' SET ('id', 'nom', 'prenom','privilege','email', 'telephone', 'fonction_tech', 'update_date')  WHERE (NULL, "'.mysql_escape_string($_POST['nom']).'","'.mysql_escape_string($_POST['prenom']).'", "'.mysql_escape_string($_POST['privilege']).'", "'.mysql_escape_string($_POST['email']).'","'.mysql_escape_string($_POST['telephone']).'", "'.mysql_escape_string($_POST['fonction_tech']).'","'.update_date('Y-m-d h:i:s').'")'; 
    5. Si ton ID est en auto increment pas la peine de le mettre dans ton update.
      Et je pense que tu peux enlever les simples quote autour du nom de la table.
      Ensuite tu as inverser les quotes, ca sera plutôt sa :
      '".mysql_escape_string($_POST['prenom']).'"
      
  2. slt,
    c'est çà!!
    tu ne dois pas update un auto-incrément et je te l'ai dis vérifie toujours tes quotes car le double quote vient apres les une quotes.
    fait gaffe
    1. Problème de concaténation quelqu'un peut t-il m'aider ?

      $query = "SELECT 'volume' FROM 'service_provider' WHERE service = ''.$data['service']'.'";
      1. Depuis le temps que tu postes içi, tu aurais pu faire un effort et regarder 2 petites secondes ton code, et voir que tes simples et doubles quotes, sont très mal ouverte.
    2. Personnellement j'utilise cette notation:

      $sql = sprintf("SELECT count(*) as nb FROM agent WHERE nom ='%s' AND prenom='%s'",
      mysql_real_escape_string($_POST['nom']),
      mysql_real_escape_string($_POST['prenom']),
      );
      


      Beaucoup plus lisible et simple à débugger à mon goût.
      1. Merci mais j'ai un autre problème de concaténation avec ça :

        $sql = sprintf("SELECT count(*) as nb FROM agent WHERE nom ='%s' AND prenom='%s'",
        mysql_real_escape_string($_POST['nom']),
        mysql_real_escape_string($_POST['prenom']),
        );