par
Cyrano » 11 oct. 2008, 22:08
On progresse...
Mais puisque tu es en phase d'apprentissage, je vais te faire une recommandation : fais preuve dès maintenant de rigueur et de discipline dans ta manière d'écrire du code.
La première chose pour le SQL que tu dois t'efforcer de mettre en pratique, c'est de nommer les colonnes où tu veux insérer des données et de n'indiquer que les valeurs que tu veux effectivement insérer.
Au vu de ta requête, tu as trois colonnes dans cette table :
- la clé primaire;
- une colonne de type texte;
- un colonne de date.
Si ces colonnes ont pour noms news_id, news_titre et news_date, alors la requête devrait normalement ressembler à ceci :
Code : Tout sélectionner
INSERT INTO `news`(news_id, news_titre, news_date)
VALUES (1, 'titre de la news', '0000-00-00 00:00:00');
Mais ta clé primaire devrait être en mode AUTO_INCREMENT : on indiquera donc pas de valeur ni la colonne. La requête devient alors :
Code : Tout sélectionner
INSERT INTO `news`(news_titre, news_date)
VALUES ('titre de la news', '0000-00-00 00:00:00');
Tu as indiqué que tu voulais mettre une date automatique, mais si j'ai correctement suivi, tu veux mettre la date du moment de l'insertion. En indiquant cette valeur-ci, elle va naturellement s'inscrire : le format est valide... et ne correspond à rien. Donc soit tu ne mets rien du tout et tu fais également sauter cette colonne de ta requête, soit tu utilises une fonction SQL pour indiquer "maintenant", et ta requête va alors devenir :
Code : Tout sélectionner
INSERT INTO `news`(news_titre, news_date)
VALUES (1, 'titre de la news', NOW());
Essaye ça et reviens si un point t'échappe encore. Ceci dit, je te suggère de te créer un petit projet basique à programmer et penches-toi surtout sur la méthodologie. Écrire du code, c'est à la portée de n'importe qui, mais écrire du code optimisé et fonctionnel, c'est une autre paire de manches. Ton sens de l'ordre et de la méthode feront la différence.
On progresse...
Mais puisque tu es en phase d'apprentissage, je vais te faire une recommandation : fais preuve dès maintenant de rigueur et de discipline dans ta manière d'écrire du code.
La première chose pour le SQL que tu dois t'efforcer de mettre en pratique, c'est de nommer les colonnes où tu veux insérer des données et de n'indiquer que les valeurs que tu veux effectivement insérer.
Au vu de ta requête, tu as trois colonnes dans cette table :
- la clé primaire;
- une colonne de type texte;
- un colonne de date.
Si ces colonnes ont pour noms news_id, news_titre et news_date, alors la requête devrait normalement ressembler à ceci :
[code]INSERT INTO `news`(news_id, news_titre, news_date)
VALUES (1, 'titre de la news', '0000-00-00 00:00:00'); [/code]
Mais ta clé primaire devrait être en mode AUTO_INCREMENT : on indiquera donc pas de valeur ni la colonne. La requête devient alors :
[code]INSERT INTO `news`(news_titre, news_date)
VALUES ('titre de la news', '0000-00-00 00:00:00'); [/code]
Tu as indiqué que tu voulais mettre une date automatique, mais si j'ai correctement suivi, tu veux mettre la date du moment de l'insertion. En indiquant cette valeur-ci, elle va naturellement s'inscrire : le format est valide... et ne correspond à rien. Donc soit tu ne mets rien du tout et tu fais également sauter cette colonne de ta requête, soit tu utilises une fonction SQL pour indiquer "maintenant", et ta requête va alors devenir :
[code]INSERT INTO `news`(news_titre, news_date)
VALUES (1, 'titre de la news', NOW()); [/code]
Essaye ça et reviens si un point t'échappe encore. Ceci dit, je te suggère de te créer un petit projet basique à programmer et penches-toi surtout sur la méthodologie. Écrire du code, c'est à la portée de n'importe qui, mais écrire du code optimisé et fonctionnel, c'est une autre paire de manches. Ton sens de l'ordre et de la méthode feront la différence.