Problème d'insertion base MySQL

Résolu/Fermé
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009 - 24 juin 2009 à 10:41
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 - 24 juin 2009 à 13:23
Bonjour tout le monde,

J'ai un problème en voulant insérer les données récupérées par un formulaire lors de l'inscription et de les insérer dans la base. Voici le code, très simple:

$dbname = '***';
$hostname = '***';
$username = '***';
$password = '***';



$id_link = mysql_connect($hostname, $username, $password);

$sql = "INSERT INTO utilisateur (id, nom, prenom, date_naissance, date_inscription, ecole, classe, rue, ville, type, newsletter, activite, email, mot_de_passe, question_sec, reponse_sec) VALUES('', '$nom', '$prenom', '$date_naissance', '$moment', '$ecole', '$classe', '$rue', '$ville', '', '$newsletter', '', '$email', '$mot_de_passe', '$question_sec', '$reponse_sec')"; 

@mysql_db_query ($dbname,$sql,$id_link);


La connexion fonctionne. Les données récupérées par le formulaire sont "bonnes", je l'ai testé avec echo.
Problème, la requete ne fonctionne pas : les données ne s'ajoutent pas dans la base!!!!
Petite précision : le champ "id" est en AUTO_INCREMENT et "activité" n'est pas renseigné lors de l'inscription, il reste blanc..

MERCI d'avance.. Je cale!
DL
A voir également:

25 réponses

Si l'id est en AUTO_INCREMENT, il n'a rien à faire dans la requête puisqu'il s'incrémente lui même.

Pour trouver ton erreur, tu peux afficher $sql et la lancer directement dans mysql (avec phpmyadmin par exemple) et voir si tu obtiens des erreurs.
1
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
24 juin 2009 à 11:16
l'auto_increment doit pas etre effectif... si t'as ce genre d'erreur.. enfin je crois...

supprimes donc la partie id dans ta requete d'insertion... et vois ce ke ça donne ....
1
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 12:01
Essaye en changeant les valeurs de connexion à ta base

$serveur="???????";
$utilisateur="??????";
$mot_de_passe="?????";
$nom_de_base="???????";
1
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 12:08
Vérifie que ut as fait aucune faute d'orthographe !!!!!
1

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

Posez votre question
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 10:46
Pour ton auto incrément essaye de mettre la valeur 'NULL'
0
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 10:53
Peux tu nous donner un aperçu de ta table utilisateur ?
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:05
Salut Chamicki ; je suppose que c'est ça que tu demandes :
Champ Type Interclassement Attributs Null Défaut Extra Action
  id int(5)   Non aucune auto_increment               
  nom varchar(30) utf8_general_ci  Non aucune                
  prenom varchar(30) utf8_general_ci  Non aucune                
  date_naissance varchar(10) utf8_general_ci  Non aucune                
  date_inscription varchar(10) utf8_general_ci  Non aucune                
  ecole varchar(30) utf8_general_ci  Non aucune                
  classe varchar(5) utf8_general_ci  Non aucune                
  rue varchar(50) utf8_general_ci  Non aucune                
  ville varchar(20) utf8_general_ci  Non aucune                
  type varchar(2) utf8_general_ci  Non aucune                
  newsletter varchar(1) utf8_general_ci  Non aucune                
  activite varchar(1) utf8_general_ci  Non aucune                
  email varchar(50) utf8_general_ci  Non aucune                
  mot_de_passe varchar(15) utf8_general_ci  Non aucune                
  question_sec varchar(100) utf8_general_ci  Non aucune                
  reponse_sec varchar(100) utf8_general_ci  Non aucune
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
24 juin 2009 à 11:09
slt.

là ça dit pas si certains champs admettent des valeurs null ou pas...

mais bon... faut ke tu fasses un echo de la requete que tu souhaites executer.. tu verifies que tout est
correct... et si tu veux, tu la recopies , et tu l'executes via ton utilitaire mysql .... si tu veux...
ou t'affiches simplement l'erreur avec ton code...
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:12
Voilà : j'ai essayé la requete:
Voici l'erreur: ;
#1366 - Incorrect integer value: '' for column 'id' at row 1

Que dois-je faire???
Merci DL
0
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 11:24
as-tu essayer avec 'NULL'
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:25
Salut Atspinto

Donc la requete fonctionne quand j'enleve Id, comme tu dis. Mais avec le PHP, mystère rien ne s'ajoute.
Je n'ai pas encore essayé avec NULL, chamicki, je te dis koi.

Merci à vous pour vos reponses rapides
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
24 juin 2009 à 11:30
chuuttt... dis rien..

c'est pas un mystère php.... si ce champ est auto_increment... y a aucun intérêt à la mentionné dans ta requête, puis de lui donner une valeur NULL... autant l'omettre.... il aura de toute façon sa valeur...

ce ki est sûr.. c'est censé passer... si c'est vraiment auto comme tu l'as dit....
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:31
Voila donc je suppose qu'il faut mettre NULL pour :
- type
- activite

Il ne me laisse pas mettre NULL pour id.

Alors je l'ai fait ... Eh ben nan, toujours rien ! POURTANT, PHP n'indique AUCUNE erreur...

Avez-vous une idée??? Pourtant sur MySql ça marche à merveille..
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
24 juin 2009 à 11:33
dis moi un truc....

TYPE et ACTIVITE sont des FOREIGN KEY ???
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:43
Ne pensez-vous pas qu'il faille SELECTIONNER la base???
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 11:45
DES QUOI?
0
Chamicki Messages postés 525 Date d'inscription jeudi 11 juin 2009 Statut Membre Dernière intervention 20 juillet 2012 73
24 juin 2009 à 11:59
if($id=mysql_connect($serveur,$utilisateur,$mot_de_passe))
{
    if(mysql_select_db($nom_de_base))
    {
       	$req = "INSERT INTO utilisateur (id, nom, prenom, date_naissance, date_inscription, ecole, classe, rue, ville, type, newsletter, activite, email, mot_de_passe, question_sec, reponse_sec) VALUES('', '$nom', '$prenom', '$date_naissance', '$moment', '$ecole', '$classe', '$rue', '$ville', '', '$newsletter', '', '$email', '$mot_de_passe', '$question_sec', '$reponse_sec')"; 

		$ok_req = mysql_query($req,$id);
		if($ok_req)
		{
			echo "Envoi ok";
			
		}
		else
		{
			die("Envoi Non ok. Veuillez contacter le responsable du site");
		}

    }
    else
    {
        die("Echec de connexion a la base. Veuillez contacter le responsable du site");
    }
    mysql_close($id);
}
else
{
    die("Echec de connexion au serveur de base de données. Veuillez contacter le responsable du site");
}
?>
0
atspinto Messages postés 338 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 8 août 2014 27
24 juin 2009 à 11:59
des clés etrangères... mais bon je crois pas ke ce soit le cas, vu ta réaction !!

mais.... j' bug là !!! je Ne pensez-vous pas qu'il faille SELECTIONNER la base??? et je suis ouff !!!

en recuperant l'erreur avec mysql_error() t'as l'info sur l'erreur qui est produite....
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 12:00
Merci pour ce code personnalisé :)

Réponse:
Echec de connexion a la base. Veuillez contacter le responsable du site
0
dlperezok Messages postés 27 Date d'inscription samedi 28 février 2009 Statut Membre Dernière intervention 29 juin 2009
24 juin 2009 à 12:06
Alors j'ai essayé avec mysql_error

Code

$probleme = mysql_error();
echo $probleme;


Réponse : Base "ecoloara_be" inconnue.

Alors là je me pose des questions !!! Ma base existe !
0