Version complète: sur le forum Webmaster Hub : Insert Into : ça marche pas
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > SQL
Yazerty
Bonsoir,

Je me remets à coder (je n'avais pas coder depuis près de 2 ans et mon niveau était alors plutôt débutant) et j'ai un petit problème avec ce code :

CODE
// Requête
$sql = "INSERT into reves_reves VALUES ('',$pseudo,$email,$email_publication,$titre,$reve,'off')";
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


Evidemment c'est le message d'erreur qui s'affiche :nono: ...

CODE
Erreur SQL !
INSERT into reves_reves VALUES ('',gertrude,geger_AT_mail.com,y,titre,reve,'off')
You have an error in your SQL syntax near '@mail.com,y,titre,reve,'off')' at line 1


Ca doit être un problème de " ' ou un truc du genre mais je ne vois pas blush.gif ...

Si quelqu'un pouvait m'aider ça m'arrangerait bien :- ?

ps : et si vous avez des bonnes adresses avec des cours très complets et bien foutus sur le sujet je suis tout à fait preneur !
Portekoi
Bonjour,

Oui, tu dois avoir un ' ou " dans ta saisie.

Fais un echo de ta requete pour voir et essaie en encadrant chacune de tes variables avec stripslashes

Pour les sites, tu as le choix :

http://www.phpdebutant.org/
http://www.siteduzero.com/

A bientot


Portekoi
MarvinLeRouge
Salut,

Tu as tout simplement oublié d'entourer tes champs avec des ' dans ta requète.
Yazerty
Portekoi : plus haut dans le script l'opération stripslashes est déjà faite :
CODE
       if (isset($_POST["pseudo"])) {
                $_POST["pseudo"]=trim(stripslashes($_POST["pseudo"]));
       }

Je connaissais déjà phpdebutant, mais www.lesiteduzero.com/ c'est la bonne url ? Je tombe sur un site avec uniquement des pub Adsense là.

En faisant :
CODE
// Requête
$sql = "INSERT into reves_reves VALUES ('','$pseudo','$email','$email_publication','$titre','$reve','off')";
echo $sql;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


Cela m'affiche :

CODE
INSERT into reves_reves VALUES ('','pseudot','tre_AT_mail.com','y','titre','rêve magique','off')Erreur SQL !
INSERT into reves_reves VALUES ('','pseudot','tre_AT_mail.com','y','titre','rêve magique','off')
Column count doesn't match value count at row 1


Edit : le 1er champ est le champ id et est en auto_increment. En le laissant vide ça devrait marcher non ?
Vincent
enleve le carrément le autoincrément :
CODE
$sql = "INSERT into reves_reves VALUES ('$pseudo','$email','$email_publication','$titre','$reve','off')";
Vincent
Portekoi a écrit n'imp laugh.gif
le bon site des zéros :
http://www.siteduzero.com/
Yazerty
Oki pour le site smile.gif.

Par contre ça donne exactement la même erreur comme ça Vincent sad.gif.
Vincent
ok je vois, si tu ne nommes pas les colonnes au début, il faut que tu ais exactement le meme nombre de champs dans la partie VALUE que de champs dans ta base.

preferes nommer tes champs en début de requete comme :
SQL
INSERT INTO clients_tbl(id,prenom,nom,ne_le,ville,enfants) VALUES('','Patrick','Martin','1965-10-08','Bordeaux','2')

au moins, si tu ajoutes un champs, elle ne va pas replanter !
Yazerty
Quand je fais ça :
CODE
$sql = "INSERT into reves_reves(id,email,email_publication,titre,reve,date,activite) VALUES ('', '$pseudo', '$email', '$email_publication', '$titre', '$reve', 'off')";
echo $sql;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


ça enregistre les données dans la table mais elles sont décalées : le pseudo se retrouve logiquement dans le champ email.


Par contre quand je fais ça (+pseudo):

CODE
$sql = "INSERT into reves_reves(id,pseudo,email,email_publication,titre,reve,date,activite) VALUES ('', '$pseudo', '$email', '$email_publication', '$titre', '$reve', 'off')";
echo $sql;
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());


ça ne marche pas du tout (erreur).

J'y comprends rien là blink.gif
Vincent
dans la 2e il te manque la date dans les données.
essaye :
SQL
INSERT into reves_reves(pseudo,email,email_publication,titre,reve,activite) VALUES ('$pseudo', '$email', '$email_publication', '$titre', '$reve', 'off')
Yazerty
Ca maarcheeee : biggrin.gif IMSTP2.gif biggrin.gif !

MERCI BEAUCOUP !

CODE
$sql = "INSERT into reves_reves(id,pseudo,email,email_publication,titre,reve,date,activite) VALUES ('', '$pseudo', '$email', '$email_publication', '$titre', '$reve', '$date', 'off')";
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.