Probleme de concentenation

glodybiss Messages postés 509 Statut Membre -  
glodybiss Messages postés 509 Statut Membre -
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

  1. NDOUKI Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   12
     
    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
    1. glodybiss Messages postés 509 Statut Membre 9
       
      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());  
      }
      0
    2. Melooo Messages postés 1476 Statut Membre 84
       
      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());  
      }
      
      0
    3. glodybiss Messages postés 509 Statut Membre 9
       
      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
      0
    4. glodybiss Messages postés 509 Statut Membre 9
       
      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').'")'; 
      0
    5. Melooo Messages postés 1476 Statut Membre 84
       
      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']).'"
      
      0
  2. NDOUKI Messages postés 110 Date d'inscription   Statut Membre Dernière intervention   12
     
    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
    0
  3. glodybiss Messages postés 509 Statut Membre 9
     
    Problème de concaténation quelqu'un peut t-il m'aider ?

    $query = "SELECT 'volume' FROM 'service_provider' WHERE service = ''.$data['service']'.'";
    0
    1. Melooo Messages postés 1476 Statut Membre 84
       
      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.
      0
  4. prosthetiks Messages postés 1309 Statut Membre 431
     
    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.
    0
    1. glodybiss Messages postés 509 Statut Membre 9
       
      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']),
      );
      0