INSERT INTO avec AUTO_INCREMENT sur phpmyadmin

Résolu/Fermé
Marco - 14 mai 2013 à 17:17
 Marco - 14 mai 2013 à 17:38
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

jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
Modifié par jeremy.s le 14/05/2013 à 17:22
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
<!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
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 14/05/2013 à 17:30
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
Oui, c'est tous des varchar sauf le telephone et le code postale qui sont en char
0
Mickael86480 Messages postés 638 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 35
Modifié par Mickael86480 le 14/05/2013 à 17:33
essai : $toto=$_POST['toto'];

$req="INSERT INTO 'client' (toto) VALUES('".$toto."')";
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
jeremy.s Messages postés 1226 Date d'inscription lundi 28 mars 2011 Statut Membre Dernière intervention 2 septembre 2013 79
Modifié par jeremy.s le 14/05/2013 à 17:36
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
Ouaip, merci pour les conseils ;-)
0