Problème d'ajout MySQL PHP

Fermé
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 28 avril 2009 à 00:20
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 - 29 avril 2009 à 22:12
Bonjour,
l'ajout à ma base ne se fait pas, et pourtant, lorsque j'affiche mes variables, elles sont bonnes, voici le code :

<?php
mysql_connect("sql.olympe-network.com", "*****", "******");
mysql_select_db("*******");

$date = date("d/m/y");
$heure = date("H:i");

$pseudo = $_POST['user'];
$password = $_POST['pass1'];
$inscription = $date." - ".$heure;
$mail = $_POST['mail'];
$phone = $_POST['phone'];
$blog = $_POST['blog'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];

if ($password == $_POST['pass2']){
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO membres_espagnol VALUES('', '$pseudo', '$password', '$inscription', '$mail', '$phone', '$blog', '$nom', '$prenom')");

mysql_close();
?>


Voila, mercii
A voir également:

16 réponses

Utilisateur anonyme
28 avril 2009 à 00:30
Bonsoir,
Exemple d'une insertion :
mysql_query("INSERT INTO news (us,date,titre,texte) VALUES ('$util','$date','$titre','$texte')");

L'id n'apparaît pas comme tu le vois et (us,date,titre,texte) correspondent aux champs de ta base de données.
En espérant t'avoir aidé.
0
Bonjour

Si, ta requête est bonne. Je pense que ton problème se situe au niveau de la connexion au serveur.
Essaye
$lnk = mysql_connect("sql.olympe-network.com", "*****", "******") or die (mysql_error());
$db=mysql_select_db("*******") or die (mysql_error());

et pendant que tu y es :
$rep=mysql_query("INSERT INTO membres_espagnol VALUES('', '$pseudo', '$password', '$inscription', '$mail', '$phone', '$blog', '$nom', '$prenom')") or die (mysql_error());

Ça te dira où se trouve l'erreur. Je penche pour la connexion, le nom d'hôte est souvent "localhost", le script tournant sur la même machine que le mysql.

D'une manière générale, il est bon de tester si les fonctions se passent bien. Elles rendent des codes d'erreur, il faut s'en servir.
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
28 avril 2009 à 21:18
merci tout le monde, mais le problème, c'est que ça ne peut pas être localhost parceque je suis sur mon site
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
28 avril 2009 à 21:28
je pense que c'est un probleme de concatenation...
quand tu mets des variables entre quote elles ne sont pas développés
mysql_query("INSERT INTO membres_espagnol('attribut1',....,'attribut8') VALUES('".$pseudo."', '".$password."', '".$inscription."', '".$mail."', '".$phone."', '".$blog."', '".$nom."', '".$prenom."')");
0

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

Posez votre question
ça ne peut pas être localhost parceque je suis sur mon site Bien sûr que si, ça peut être localhost quand même ! Si le script tourne sur la même machine que le serveur sql ! Note que je dis simplement "ça peut être" et pas "c'est forcément". Mais normalement, ton hébergeur a dû te donner le nom de serveur mysql à utiliser, il n'y a pas à jouer aux devinettes pour le trouver.

Il n'y a aucun problème de concaténation, d'ailleurs il n'y a pas de concaténation du tout, les variables sont bien dans une seule et même chaîne entre double quotes. Même si cette chaîne contient aussi des simple quotes, ces simples quotes sont ici des caractères comme les autres et ne délimitent pas de chaîne.
Et si tu tiens à mettre les noms des champs comme le suggèrent Adenora et mype (bien que ce ne soit pas obligatoire du tout), il ne faut surtout pas les mettre entre simple quotes comme dans 'attribut1','attribut2',... mais entre accents graves `attribut1`,`attribut2`,... ou tout simplement sans rien attribut1,attribut2,...

Ce qui serait utile, c'est de connaître le message d'erreur affiché par les die(mysql_error()).
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:17
Alors, ok, j'ai fait beaucoups de sites (site de gestion de devoirs en SQL pour stoker les devoirs etc..., gestion de matériel stockage etc ... espace membres dans chaques sites etc...) et c'est la 1° fois que ça me le fait ! et quand e mets "or die (mysql_error()); " il ne me dit rien et affiche la page normalement !
que dois faire s'il vous plait !
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:27
c bon, ça marche, quand je mets le or die(mysql_error()); etc ...
il me dis ça :

"Column count doesn't match value count at row 1" ça signifi quoi ?

Merci
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
29 avril 2009 à 19:29
Que tu dois renseigner la 1ère valeur dans ta requete.

J'imagine que c'est l'id de ta table, et que tu ne l'as pas mit en auto_increment.
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:31
je vais regarder ça tout de suite , 30 secondes...
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:35
Pourtant, si ! mon id est en AI ! mais au niveau de action ça doit être quoi ? (Primaire, unique ou index)

Merci bcp !
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
29 avril 2009 à 19:42
En primaire ou unique, mais c'est forcément le cas, sinon mysql n'aurait pas autorisé l'auto_increment.

Donc ce que je te conseille, et qui est une bonne pratique au passage, est de nommer les colonnes de ta table dans l'insert.

Exemple
INSERT INTO membres_espagnol(pseudo, password, inscription, mail, phone, blog, nom, prenom) 
VALUES('$pseudo', '$password', '$inscription', '$mail', '$phone', '$blog', '$nom', '$prenom')
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:43
mais je ne mets pas le id ?
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 19:50
ça ne change rien! que dois-je faire s'il te plait !
0
P@t@ch0n Messages postés 565 Date d'inscription mercredi 15 avril 2009 Statut Membre Dernière intervention 28 décembre 2009 85
29 avril 2009 à 19:54
Vérifier la valeur de tes variables avant de les insérer dans ta table.

Afficher ton sql pour visualiser ce que ça donne.
0
infor3lmd Messages postés 111 Date d'inscription jeudi 16 avril 2009 Statut Membre Dernière intervention 13 mai 2009 2
29 avril 2009 à 19:55
tu met l'id dans ta requête,car c'est un champs de ta table
alors pour que la requête INSERT marche tu doit indiquer tout les champs de ta table :
INSERT INTO membres_espagnol(id,pseudo, password, inscription, mail, phone, blog, nom, prenom) 
VALUES('','$pseudo', '$password', '$inscription', '$mail', '$phone', '$blog', '$nom', '$prenom')
0
jobertomeu Messages postés 1189 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 5 février 2015 86
29 avril 2009 à 22:12
c'est bon, ça marche ! super ! merci bcp a ts le monde c super merci encore à toi en particulier P@t@ch0n !

A+, problème résolu
0