INSERT INTO avec AUTO_INCREMENT sur phpmyadmin

Résolu
Marco -  
 Marco -
Bonjour,

J'ai cette requête INSERT mais rien ne se passe dans la base de donnée:
$req="INSERT INTO client (nom, prenom, adresse, cp, ville, mail, tel) VALUES('".$_POST['nom']."','".$_POST['prenom']."','".$_POST['adresse']."','".$_POST['cp']."','".$_POST['ville']."','".$_POST['mail']."','".$_POST['tel']."')";

J'ai le champ num en AUTO_INCREMENT, c'est pour cela que je l'ai pas mis, mais ma requête ne passe pas, pouvez vous m'aider? :)

7 réponses

  1. jeremy.s Messages postés 1248 Statut Membre 79
     
    Salut !

    Peux tu donné tout ton code ? Avec l'objet utilisé pour la PDO (mysql_connect, pdo, mysqli, etc...)
    Et également ton formulaire HTML :)

    Mais à première vue c'est une problème de cote / double cote !

    Jérémy
    0
  2. Marco
     
    <!DOCTYPE HTML>
    <html>
    <head><title>Ajouter un nouveau client</title></head>
    <meta charset="UTF-8"/>
    <body>
    <?php
    if($_GET)
    {
    ?>
    <form name="frm" action="ajoutClient.php" method="POST">
    Num: <input type="text" name="num" size="5" value="<?php echo $_GET["num"]; ?>" readonly /><br />
    <br>Nom: <input type="text" name="nom" size="20" value="<?php echo $_GET["name"]; ?>" /><br />
    <br>Prénom: <input type="text" name="prenom" size="20" value="<?php echo $_GET["prenom"]; ?>"/><br />
    <br>Adresse: <input type="text" name="adresse" size="35" value="<?php echo $_GET["adresse"]; ?>" /><br />
    <br>Code Postale: <input type="text" name="cp" size="5" value="<?php echo $_GET["cp"]; ?>"/><br />
    <br>Ville: <input type="text" name="ville" size="20" value="<?php echo $_GET["city"]; ?>"/><br />
    <br>Adresse mail: <input type="text" name="mail" size="30" value="<?php echo $_GET["mail"]; ?>"/><br />
    <br>Téléphone <input type="text" name="tel" size="20" value="<?php echo $_GET["tel"]; ?>"/><br />
    <br>       <input type="submit" name="Bt_ajouter" value="Ajouter"/>
       <input type="reset" name="Bt_Annuler" value="Annuler"/><br />
    </form>

    <?php
    }
    else
    {
    $connexion=mysql_connect("localhost", "root", "")
    or die("Impossible de se connecter : " . mysql_error());
    mysql_select_db("base");

    if($connexion)
    {
    $req="INSERT INTO client (nom, prenom, adresse, cp, ville, mail, tel) VALUES('".$_POST['nom']."','".$_POST['prenom']."','".$_POST['adresse']."','".$_POST['cp']."','".$_POST['ville']."','".$_POST['mail']."','".$_POST['tel']."')";
    mysql_query($req);
    if ($req)
    {
    echo "<h1>Ajout effectué avec succès<h1>";
    echo "<a href='Client.php'>[Retour à l'affichage des Clients]</a>";

    }
    }
    mysql_close($connexion);
    }
    ?>

    </body>
    </html>

    Voilà le code ^^
    Oui, y a moyen, j'm'y retrouve plus trop avec toutes ses quotes! ^^'
    0
  3. Mickael86480 Messages postés 698 Statut Membre 41
     
    A en croire ta requete, tous les champs de ta table s'attendent à recevoir des chaine de caractère du style 'abcd' est-ce correcte à ce niveau là?

    rajoute des '' à client (alt+7 puis espace de ton clavier)
    0
  4. Marco
     
    Oui, c'est tous des varchar sauf le telephone et le code postale qui sont en char
    0
    1. Mickael86480 Messages postés 698 Statut Membre 41
       
      essai : $toto=$_POST['toto'];

      $req="INSERT INTO 'client' (toto) VALUES('".$toto."')";
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Marco
     
    C'était bien un problème de quotes!
    J'ai inversé toutes les quotes avec les doubles quotes et vice-versa, désormais ça marche.
    Merci de votre aide :)
    0
  7. jeremy.s Messages postés 1248 Statut Membre 79
     
    Fais voir un print_r($_POST) pour voir si ya bien quelque chose en post
    Ensuite met plutot mysql_query($req) or die("Erreur lors de la requete");
    pour voir si c'est la requete qui n'a pas marché.

    Et pour finir c'est mieux d'utiliser if(isset($_GET)) plutot que if($_GET)
    Et ton if ($req) ne sert pas à grand chose, car $req est un string et non le résultat de ta requete. Pour faire cela il faut mettre le mysql_query($req) dans le if.

    Dernier conseil : Dirige toi vers l'objet PDO, car mysql_connect n'est plus d'actualité :)

    EDIT : Le temps de faire la réponse et c'est résolu ! Donc tant mieux ! Mais prend quand même en compte mes petits conseils :)

    Jérémy
    0
  8. Marco
     
    Ouaip, merci pour les conseils ;-)
    0