Probleme de auto date sur ma base mysql
Résolu
dadou9101
Messages postés
110
Statut
Membre
-
Xil Messages postés 351 Statut Membre -
Xil Messages postés 351 Statut Membre -
Bonjour,
je crée un formulaire je voudrais mettre une date automatique
jai crée dans ma base la date en mode automatique
CREATE TABLE bl (
num_bl INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
magasin_num_mag INTEGER UNSIGNED NOT NULL,
technicien_num_tec INTEGER UNSIGNED NOT NULL,
nom_bl VARCHAR(255) NULL,
date_bl DATETIME NOT NULL,
PRIMARY KEY(num_bl),
INDEX bl_FKIndex1(technicien_num_tec),
INDEX bl_FKIndex2(magasin_num_mag)
);
seulement voila quand au moment ou la personnes crée sont formulaire une erreur se produit et me dit de mettre une valeur a ma date
INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl)VALUES ('1','1','test de mon auto date')
Field 'date_bl' doesn't have a default value
jai regarder le code php de ma page et jai mis sa
<?php
if($_POST["num_mag"] != "" && $_POST["num_tec"] != "" && $_POST["nom_bl"] != "")
{
$num_mag = $_POST["num_mag"];
$num_tec = $_POST["num_tec"];
$nom_bl = $_POST["nom_bl"];
include('connexion.php');
//création de la requête SQL
$sql = "INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl)VALUES ('$num_mag','$num_tec','$nom_bl')";
//exécution de la requête SQL
$requete = @mysql_query( $sql, $link ) or die( $sql . "<br>" . mysql_error() );
echo '<div align="center"> Le message a ete envoye a TITINE et enregistrer sur le serveur </strong></div>';
mysql_close();
}
?>
je ne vois pas quel est mon erreur
si vous pouviez m aidez sa serait vraiment sympa
merci
je crée un formulaire je voudrais mettre une date automatique
jai crée dans ma base la date en mode automatique
CREATE TABLE bl (
num_bl INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
magasin_num_mag INTEGER UNSIGNED NOT NULL,
technicien_num_tec INTEGER UNSIGNED NOT NULL,
nom_bl VARCHAR(255) NULL,
date_bl DATETIME NOT NULL,
PRIMARY KEY(num_bl),
INDEX bl_FKIndex1(technicien_num_tec),
INDEX bl_FKIndex2(magasin_num_mag)
);
seulement voila quand au moment ou la personnes crée sont formulaire une erreur se produit et me dit de mettre une valeur a ma date
INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl)VALUES ('1','1','test de mon auto date')
Field 'date_bl' doesn't have a default value
jai regarder le code php de ma page et jai mis sa
<?php
if($_POST["num_mag"] != "" && $_POST["num_tec"] != "" && $_POST["nom_bl"] != "")
{
$num_mag = $_POST["num_mag"];
$num_tec = $_POST["num_tec"];
$nom_bl = $_POST["nom_bl"];
include('connexion.php');
//création de la requête SQL
$sql = "INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl)VALUES ('$num_mag','$num_tec','$nom_bl')";
//exécution de la requête SQL
$requete = @mysql_query( $sql, $link ) or die( $sql . "<br>" . mysql_error() );
echo '<div align="center"> Le message a ete envoye a TITINE et enregistrer sur le serveur </strong></div>';
mysql_close();
}
?>
je ne vois pas quel est mon erreur
si vous pouviez m aidez sa serait vraiment sympa
merci
A voir également:
- Probleme de auto date sur ma base mysql
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Airpods 3 date de sortie - Guide
- Formules excel de base - Guide
- Ciel auto entrepreneur - Télécharger - Comptabilité & Facturation
2 réponses
Bonjour,
Ton champ date_bl n'est pas défini pour prendre une valeur par défaut.
Ensuite, sur mysql, un champ de type datetime n'accepte pas comme valeur par défaut la date actuelle (via CURRENT_TIMESTAMP ou NOW()).
De là deux possibilités :
- Soit tu modifie ton champ comme suit :
Mais tu perdra certainement les données déjà remplies pour ce champ.
- Soit tu modifie un peu ta requête d'insertion pour que PHP y intègre la bonne date :
Ton champ date_bl n'est pas défini pour prendre une valeur par défaut.
Ensuite, sur mysql, un champ de type datetime n'accepte pas comme valeur par défaut la date actuelle (via CURRENT_TIMESTAMP ou NOW()).
De là deux possibilités :
- Soit tu modifie ton champ comme suit :
ALTER TABLE CHANGE date_bl date_bl TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP;
Mais tu perdra certainement les données déjà remplies pour ce champ.
- Soit tu modifie un peu ta requête d'insertion pour que PHP y intègre la bonne date :
$sql = "INSERT INTO bl (magasin_num_mag, technicien_num_tec, nom_b, date_bl) VALUES ('$num_mag','$num_tec','$nom_bl', '" . date('d/m/Y') . "')";
j ai trouve tous seul je met la solutions
deja il faut modifier la table sql suivante et mettre sa
CREATE TABLE bl (
num_bl INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
magasin_num_mag INTEGER UNSIGNED NOT NULL,
technicien_num_tec INTEGER UNSIGNED NOT NULL,
nom_bl VARCHAR(255) NULL,
date_bl TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(num_bl),
INDEX bl_FKIndex1(technicien_num_tec),
INDEX bl_FKIndex2(magasin_num_mag)
);
CREATE TABLE magasin (
num_mag INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nom_mag VARCHAR(45) NULL,
com_mag VARCHAR(6000) NULL,
PRIMARY KEY(num_mag)
);
CREATE TABLE technicien (
num_tec INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nom_tec VARCHAR(20) NULL,
prenom_tec VARCHAR(20) NULL,
PRIMARY KEY(num_tec)
);
et pour mon code php il fallait mettre sa
$sql = "INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl, date_bl)VALUES ('$num_mag','$num_tec','$nom_bl',now())";
mtn c nikel
deja il faut modifier la table sql suivante et mettre sa
CREATE TABLE bl (
num_bl INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
magasin_num_mag INTEGER UNSIGNED NOT NULL,
technicien_num_tec INTEGER UNSIGNED NOT NULL,
nom_bl VARCHAR(255) NULL,
date_bl TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY(num_bl),
INDEX bl_FKIndex1(technicien_num_tec),
INDEX bl_FKIndex2(magasin_num_mag)
);
CREATE TABLE magasin (
num_mag INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nom_mag VARCHAR(45) NULL,
com_mag VARCHAR(6000) NULL,
PRIMARY KEY(num_mag)
);
CREATE TABLE technicien (
num_tec INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
nom_tec VARCHAR(20) NULL,
prenom_tec VARCHAR(20) NULL,
PRIMARY KEY(num_tec)
);
et pour mon code php il fallait mettre sa
$sql = "INSERT INTO bl(magasin_num_mag, technicien_num_tec, nom_bl, date_bl)VALUES ('$num_mag','$num_tec','$nom_bl',now())";
mtn c nikel