Problème d'insertion base MySQL

Résolu
dlperezok Messages postés 27 Date d'inscription   Statut Membre Dernière intervention   -  
Chamicki Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   -
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

Yox
 
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   Statut Membre Dernière intervention   27
 
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 526 Date d'inscription   Statut Membre Dernière intervention   73
 
Essaye en changeant les valeurs de connexion à ta base

$serveur="???????";
$utilisateur="??????";
$mot_de_passe="?????";
$nom_de_base="???????";
1
Chamicki Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   73
 
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 526 Date d'inscription   Statut Membre Dernière intervention   73
 
Pour ton auto incrément essaye de mettre la valeur 'NULL'
0
Chamicki Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   73
 
Peux tu nous donner un aperçu de ta table utilisateur ?
0
dlperezok Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   27
 
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   Statut Membre Dernière intervention  
 
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 526 Date d'inscription   Statut Membre Dernière intervention   73
 
as-tu essayer avec 'NULL'
0
dlperezok Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   27
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   27
 
dis moi un truc....

TYPE et ACTIVITE sont des FOREIGN KEY ???
0
dlperezok Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
Ne pensez-vous pas qu'il faille SELECTIONNER la base???
0
dlperezok Messages postés 27 Date d'inscription   Statut Membre Dernière intervention  
 
DES QUOI?
0
Chamicki Messages postés 526 Date d'inscription   Statut Membre Dernière intervention   73
 
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   Statut Membre Dernière intervention   27
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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