insert sql souci

neni
Invité n'ayant pas de compte PHPfrance

08 mars 2008, 13:46

Bonjour

j'essaye de creer une table mais j'ai un soucis
la structure
CREATE TABLE `CP` (
`idx` int(255) NOT NULL auto_increment,
`ville_min` char(30) NOT NULL default '',
`ville_maj` char(30) NOT NULL default '',
`code_postal` char(10) NOT NULL default '',
`departement_maj` char(50) NOT NULL default '',
`departement_min` char(50) NOT NULL default '',
`region` char(50) NOT NULL default '',
`prefecture` char(50) NOT NULL default ''
) TYPE=MyISAM;

et pour inserer
INSERT INTO 'CP' VALUES ('', 'Aast', 'AAST', '64460', 'PYRENEES ATLANTIQUES', 'Pyrénées-Atlantiques', 'Aquitaine', 'Pau');
/quote]


mais l'insertion ne passe pas

l'erreur doit etre bete je pense

merci pour l'aide

ViPHP
ViPHP | 2144 Messages

08 mars 2008, 13:59

Il ne faut pas mettre de quote '' pour encadrer un champ numérique.

Ps: Petite curiosité de ma part, pourquoi stocker les noms en majuscules et en minuscules dans la base de donnée ?

neni
Invité n'ayant pas de compte PHPfrance

08 mars 2008, 14:02

je met quoi ici

Code : Tout sélectionner

VALUES (??????, 'Aast',

Mammouth du PHP | 19672 Messages

08 mars 2008, 14:29

Pratique d'insertions en SQL :

il y a deux méthodes :
-1-

Code : Tout sélectionner

INSERT INTO ma_table VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');
-2-

Code : Tout sélectionner

INSERT INTO ma_table (col_1, col_2, ..., col_n) VALUES('val_col_1', 'val_col_2', ..., 'val_col_n');
Dans la première méthode, on ne spécifie pas les colonnes à remplir : ça impose de mettre autant de valeurs pour VALUES qu'il y a de colonnes dans la table. Si on a une colonne auto-incrémentée (le plus souvent la clé primaire) alors on mets simplement des quotes sans valeur(chaîne vide).

Dans la seconde méthode, on indique les colonnes dans lesquelles on veut insérer des données. Donc si on a une colonne auto_incrémentée, on ne l'indique pas et on ne met que tout ou partie des autres avec pour VALUES les valeurs correspondantes.

Ce qui veut dire que ta requête :

Code : Tout sélectionner

INSERT INTO 'CP' VALUES ('', 'Aast', 'AAST', '64460', 'PYRENEES ATLANTIQUES', 'Pyrénées-Atlantiques', 'Aquitaine', 'Pau');
est parfaitement valide si ta table CP a une première colonne qui est soit en auto_increment soit a de toutes façons une valeur par défaut et que la table CP a bien 8 colonnes.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

neni
Invité n'ayant pas de compte PHPfrance

08 mars 2008, 15:08

j'ai retire les ' a CP au lieu de 'CP'


Bete non !!!!

Mammouth du PHP | 19672 Messages

08 mars 2008, 15:12

Exact, j'avais zappé ce détail :oops:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 3607 Messages

08 mars 2008, 15:43

touours est-il que cette question me semble importante...
Ps: Petite curiosité de ma part, pourquoi stocker les noms en majuscules et en minuscules dans la base de donnée ?
Celà souligne peut-être un petit soucis de modélisation ;)

ViPHP
ViPHP | 2144 Messages

08 mars 2008, 17:02

sorry, je me suis bien planté sur les quotes, là :D

pour la question de modélisation, c'est en effet à ça que je pense, et de même pour les noms de départements, qui doivent se doublonner dans les enregistrements.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

09 mars 2008, 17:04

touours est-il que cette question me semble importante...
Ps: Petite curiosité de ma part, pourquoi stocker les noms en majuscules et en minuscules dans la base de donnée ?
Celà souligne peut-être un petit soucis de modélisation ;)
pas vraiment "modélisation" mais plus fonctionnel... quoi qu'il en soit c'est un "souci" ;)


Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute