Php insertion des données dans une bdd sql

bonjour;
j'ai un code php employé pour soumettre un formulaire et insérer ses données dans une base de données sql.

j'ai fait recourt à cette requête pour faire insérer mes données mais en vains.

$sql = "INSERT INTO client VALUES($ind,$_GET['nom'],$_GET['prenom'],$_GET['adr'],$_GET[cp],$_GET['vil'],$_GET['reg'],$_GET[tel],$_GET[fax],$_GET['mail'],$_GET['mp'],$_GET['login'])";  


ça n'a pas marché!

pouvez vous m'aidez à fin de rectifier le probleme.
cordialement.

5 réponses

  1. Euh... je peux me tromper mais tes informations que tu ajoute dans la base de donnée il vienne d'un formulaire?

    Si oui

    serai-t-il pas plus approprier de prendre les $_POST à la place de $_GET ?
    1. Bah tout dépend quelle méthode il utilise dans son formulaire ! Mais à mon avis , que se soit $_POST ou $_GET, sa ne marchera pas directement dans une requete SQL..
    2. pas faux...
  2. Bonjour,

    Essaye avec cette forme :

    "INSERT INTO client(nom, prenom,...) VALUES('$_GET['nom']', '$_GET['prenom']',...)";
    1. Il a peut être cette erreur-ci aussi, mais l'erreur qui a montré, c'est une erreur php, pas une erreur sql, donc ca ne la règlera pas ^^
    2. Ah oué autant pour moi, donc la seule "erreur" que je verrai et je te rejoind , c'est l'utilistation des get directelent dans la requete; peut etre faut-il passer par des variables simples..
    3. oui j'ai essayé avec des variables simples et ça marche parfaitement!
      merci.
  3. Ca vient peut être des ' de tes get qui "brouillent" les ' de la requête (me paraît bizarre, m'enfin!)
    En en remplaçant par quelquechose comme ça, ca ne marche tjs pas ? (j'ai rien pour vérifier que la syntaxe est bonne, il se peut qu'il y ait des . ou des " mals placés ^^)

    $sql = "INSERT INTO client VALUES($ind,'".$_GET['nom']."','".$_GET['prenom']."','".$_GET['adr']."',$_GET['cp'],'".$_GET['vil']."','".$_GET['reg']."',$_GET['tel'],$_GET['fax'],'".$_GET['mail']."',$_GET['mp'],'".$_GET['login']."')"; 


    edit : maintenant que j'y repense, il me semble que quand on met directement un tableau (en l'occurence get) dans une chaîne de caractère, sans passer par la concaténation, ca pose problème
    1. ça n'a pas marché!

      $sql = "INSERT INTO client VALUES($ind,'$_GET['nom']','$_GET['prenom']','$_GET['adr']',$_GET['cp'],'$_GET['vil']','$_GET['reg']',$_GET['tel'],$_GET['fax'],'$_GET['mail']',$_GET['mp'],'$_GET['login']')"; 


      et le message d'erreur est:

      Parse error: parse error, expecting 'T_STRING' or 'T_VARIABLE' or 'T_NUM_STRING' in C:\wamp\www\rdl\inscription.php on line 42
      1. Dans une requête sql, il faut mettre des ' autour des chaînes de caractères (juste pour les chaînes, pas besoin pour les nombres par exemple)