inserer des données dans sql - SQL/NoSQL - Programmation
Marsh Posté le 21-08-2004 à 17:13:54
je viens de me faire php debutant, en as tu un autre a me proposer?
Marsh Posté le 21-08-2004 à 17:23:05
ReplyMarsh Posté le 22-08-2004 à 12:37:12
J'ai remarqué que ton point-virgule ( est à l'extérieur des doubles quote, essaie de décaler les (" ) après : '$note');".
Si cela ne marche toujours pas.. Le message d'erreur laisse supposer deux choses :
// on ecris la requete sql
$sql = "INSERT INTO membre VALUES('$titre','$url','$description','$mat1','$mat2','$note')";
(1) : soit tu insères plus de valeurs que tu as de colonnes.
c-à-d que tu as dans ta table MEMBRE + ou - 6 valeurs à insérer, vérifie alors le nombre de colonnes dans ta table MEMBRE le le nombre de valeurs que tu veux insérer.
(2) soit tu insères tes valeurs en ne respectant pas l'ordre et le type.
Cordialement
Marsh Posté le 22-08-2004 à 12:40:27
merci bcq, jai trouvé, il faut mettre '' quand on n'insert rien dedans
jai une table avec 12 valeurs, et je ne fais appelle qua 6 d'entre elles, il faut donc mettre insert.... '$balabal', '','', '$blalba',....
Marsh Posté le 22-08-2004 à 13:00:48
insert into table (noms champs) values (valeurs)
ca te permet d'insérer dans une table sans mettre des valeurs dans tous les champs. deplus, le jour où l'odre des champs change, ce système ne plante pas, contrairement à celui que tu utilise.
insert into table values (valeurs) est à proscrire de tout code.
Marsh Posté le 22-08-2004 à 13:36:27
Arjuna a écrit : insert into table (noms champs) values (valeurs) |
Marsh Posté le 22-08-2004 à 14:24:42
Il y a aussi la syntaxe :
INSERT INTO TABLE |
que j'aime bien car pour faire ensuite une requête update, il suffit juste de modifier la première ligne et d'ajouter un WHERE, et non de se retaper une requête entière...
Marsh Posté le 22-08-2004 à 15:32:13
pascal_ a écrit : Il y a aussi la syntaxe :
|
sauf que je ne suis pas sûr que ce soit très standard comme syntaxe.
à mon avis, c'est à proscrire dans le cas d'une appli type site web, qui peut, pour diverses raisons, changer de base de données (contraintes d'hébergement, montée en charge, ajout de fonctionnalités nécessitant un autre SGBD, changement de plateforme, etc.)
Marsh Posté le 22-08-2004 à 16:39:49
Arjuna a écrit : sauf que je ne suis pas sûr que ce soit très standard comme syntaxe. |
bon ben si c'est pas standard
HS : qqun à un lien vers le standard SQL ?
Marsh Posté le 22-08-2004 à 17:19:12
J'ai pas lu, mais à priori ça doit être pas mal :
http://webapp.progress.com:6336/dy [...] __BookView
Marsh Posté le 22-08-2004 à 17:20:11
ReplyMarsh Posté le 22-08-2004 à 18:05:31
Merci.
J'ai trouvé un SQL validator, pour sql92 sql99 & sql2003 (j'était même pas au courant que c'était sortit ça ) : http://developer.mimer.se/validator/index.htm
Marsh Posté le 22-08-2004 à 18:34:19
reste en SQL92, parceque déjà qu'il doit y avoir 2 SGBD à tout casser qui sont 100% compatible avec, j'imagine même pas les autres
Marsh Posté le 21-08-2004 à 16:47:52
slt,
jai une table sql qui est la suivante:
Champ Type Null Défaut
id_membre int(10) Oui NULL
id varchar(20) Oui NULL
pseudo varchar(20) Oui NULL
passe varchar(20) Oui NULL
email varchar(100) Oui NULL
ville varchar(200) Oui NULL
titre varchar(40) Oui NULL
url varchar(100) Oui NULL
description text Oui NULL
mat1 varchar(15) Oui NULL
mat2 varchar(15) Oui NULL
note char(2) Oui NULL
ma page addinfo
// On commence par vérifier si les champs sont vides
if(empty($titre) OR empty($url) OR empty($description) OR empty($mat1) OR empty($mat2) OR empty($mat2))
{
echo '<font color="red">Attention, aucun chanps ne peut rester vide !</font>';
}
// Aucun champ n'est vide, on peut enregistrer dans la table
else
{
// connexion à la base
$db = mysql_connect('sql.free.fr ', '*******', '*****') or die('Erreur de connexion '.mysql_error());
// sélection de la base
mysql_select_db('********',$db) or die('Erreur de selection '.mysql_error());
// on ecris la requete sql
$sql = "INSERT INTO membre VALUES('$titre','$url','$description','$mat1','$mat2','$note')";
// on insère les informations du formulaire dans la table
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
?>
j'obtien un message d'erreur:
Erreur SQL !INSERT INTO membre VALUES('titre','url','description','mat1','mat2','no')
Column count doesn't match value count at row 1
que dois faire pour que ca marche?