Nous sommes le Mar 22 Juil, 2025 20:45
Supprimer les cookies

[Résolu]Débutant SQL

Sur le logiciel libre en général ou un logiciel libre en particulier

Mer 08 Fév, 2006 14:48

Bonjour à tous,

Fidèle lecteur de framasoft, et utilisateur TRES satisfait de la framakey, je me suis lancé un défit.

Installer un serveur Apache + PHP + Mysql sur le serveur du boulot. (Un P4Xeon sous W2K). J'ai installé les dernières versions des différents composants (Apache 2.0, PHP 5 et Mysql 5)

J'ai trouvé sur Framasoft le manuel de Sébastien Maisse que j'ai suivi à la lettre.

Une fois terminé, j'ai voulu apprendre à l'utiliser.

Je me suis rendu sur un site de PHP débutant et j'ai commencé à suivre les cours.

A priori, j'ai du rater une étape.

A l'aide de phpmyadmin, j'ai créer une base de données de test, puis avec le code ci-dessous, une table

Code: Tout sélectionner
CREATE TABLE clients_tbl (id INT not null AUTO_INCREMENT, prenom VARCHAR (50) not null , nom VARCHAR (50) not null , ne_le DATE not null , ville VARCHAR (90) not null , enfants INT not null , PRIMARY KEY (id))


Lorsque je veux insérer des données dans ma table, j'ai l'erreur :
Code: Tout sélectionner
#1264 - Out of range value adjusted for column 'id' at row 1


Pour insérer mes données, j'ai utilisé le code :
Code: Tout sélectionner
INSERT INTO clients_tbl(id,prenom,nom,ne_le,ville,enfants) VALUES('','Patrick','Martin','1965-10-08','Bordeaux','2')



J'ai bien compris que le champs id posait problème, mais je ne vois pas comment résoudre mon problème.

J'ai fait exactement, la même chose avec EasyPHP 1.8 et la tout est OK.

Vous remerciant par avance d'une éventuelle piste.

Eric
Dernière édition par erique le Mer 08 Fév, 2006 15:22, édité 1 fois au total.
erique

Messages : 12

Mer 08 Fév, 2006 14:55

Bonjour,

Si mes souvenirs SQL sont bons, le champ id étant de type Auto_Increment, il ne faut pas le saisir, il est créé et incrémenté automatiquement à chaque nouvelle fiche saisie dans la table. D'ailleurs ce champ sert d'index pour la table (PRIMARY KEY (id)).
Pernmith

Messages : 486
Géo : pas loin de Strasbourg

Mer 08 Fév, 2006 15:22

merci de cette réponse rapide.
erique

Messages : 12

Mer 08 Fév, 2006 16:41

Euh on peut forcer la valeur d'un champ en AUTO_INCREMENT, ça marche. Par contre je crois voir un problème, tu essayes de mettre la valeur '' dans le champ id, qui est de type INT. Un entier ne peut pas prendre une telle valeur, il doit obligatoirement représenter un nombre. En plus tu lui as bien spécifié "NOT NULL", ça aggrave :wink:

Mais si tu te contentes de faire :

Code: Tout sélectionner
INSERT INTO clients_tbl(prenom,nom,ne_le,ville,enfants) VALUES('Patrick','Martin','1965-10-08','Bordeaux','2')



tout se passera bien, au fur et à mesure des insertions, id prendra tour à tour la valeur 1, 2, ...

Attention aussi aux clés primaires : une clé primaire est par définition une colonne qui sert à discriminer deux lignes dans une table. Donc là tu as mis id en clé primaire (c'est classique), du coup deux lignes de la table ne doivent pas avoir un même id, ça provoquerait une erreur.
irimi

Messages : 503

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit