Data truncated
Fermé
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
-
25 août 2017 à 12:23
jordane45 Messages postés 38269 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 novembre 2024 - 25 août 2017 à 19:21
jordane45 Messages postés 38269 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 novembre 2024 - 25 août 2017 à 19:21
A voir également:
- Data truncated for column
- App data - Guide
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Copytrans heic for windows - Télécharger - Visionnage & Diaporama
- Download instagram for pc - Télécharger - Divers Communication
- Saveaspdf.exe for office 2007 - Télécharger - Bureautique
5 réponses
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
25 août 2017 à 12:50
25 août 2017 à 12:50
bonjour, moi je ferais
ou
INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`) VALUES ('HALOT', '34', '2017', '2017-08-21', '150', '250')
ou
INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`,`parkinglundi`) VALUES ('HALOT', '34', '2017', '2017-08-21', '150', '250', NULL)
jordane45
Messages postés
38269
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 novembre 2024
4 694
25 août 2017 à 12:51
25 août 2017 à 12:51
Bonjour,
Question concernant les requêtes SQL et non le PHP ... je déplace donc dans le forum Bases de données.
Ensuite.... il me semble que '' correspond à une chaine vide ... pas à NULL
il faut, soit que tu forces à NULL ... soit, vu que c'est un champ numérique que tu le fixes à zéro par exemple.
Question concernant les requêtes SQL et non le PHP ... je déplace donc dans le forum Bases de données.
Ensuite.... il me semble que '' correspond à une chaine vide ... pas à NULL
il faut, soit que tu forces à NULL ... soit, vu que c'est un champ numérique que tu le fixes à zéro par exemple.
jordane45
Messages postés
38269
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 novembre 2024
4 694
25 août 2017 à 12:54
25 août 2017 à 12:54
Oups;..
Peux tu essayer :
*
Sinon.. peux tu nous montrer un SHOW CREATE de ta table ?
Peux tu essayer :
INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`,`parkinglundi`) VALUES ('HALOT', '34', '2017', '2017-08-21', '150', '250', 'null')
*
Sinon.. peux tu nous montrer un SHOW CREATE de ta table ?
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
>
jordane45
Messages postés
38269
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 novembre 2024
25 août 2017 à 16:46
25 août 2017 à 16:46
oups désolée...
Voici :
Voici :
CREATE TABLE `frais` (
`ID` int(11) NOT NULL,
`nom` varchar(15) NOT NULL,
`semaine` int(2) NOT NULL,
`annee` int(4) NOT NULL,
`date` date NOT NULL,
`kmlundi` int(4) NOT NULL,
`kmvendredi` int(4) NOT NULL,
`kmautolundi` int(4) DEFAULT NULL,
`kmautovendredi` int(4) DEFAULT NULL,
`parkinglundi` double DEFAULT NULL,
`parkingmardi` double DEFAULT NULL,
`parkingmercredi` double DEFAULT NULL,
`parkingjeudi` double DEFAULT NULL,
`parkingvendredi` double DEFAULT NULL,
`hotellundi` double DEFAULT NULL,
`hotelmardi` double DEFAULT NULL,
`hotelmercredi` double DEFAULT NULL,
`hoteljeudi` double DEFAULT NULL,
`hotelvendredi` double DEFAULT NULL,
`repassoirlundi` double DEFAULT NULL,
`repassoirmardi` double DEFAULT NULL,
`repassoirmercredi` double DEFAULT NULL,
`repassoirjeudi` double DEFAULT NULL,
`repassoirvendredi` double DEFAULT NULL,
`postelundi` double DEFAULT NULL,
`postemardi` double DEFAULT NULL,
`postemercredi` double DEFAULT NULL,
`postevendredi` double DEFAULT NULL,
`postejeudi` double DEFAULT NULL,
`repaslundi` double DEFAULT NULL,
`clientlundi` varchar(30) DEFAULT NULL,
`repasmardi` double DEFAULT NULL,
`clientmardi` varchar(30) DEFAULT NULL,
`repasmercredi` double DEFAULT NULL,
`clientmercredi` varchar(30) DEFAULT NULL,
`repasjeudi` double DEFAULT NULL,
`clientjeudi` varchar(30) DEFAULT NULL,
`repasvendredi` double DEFAULT NULL,
`clientvendredi` varchar(30) DEFAULT NULL,
`diverslundi` double DEFAULT NULL,
`typediverslundi` varchar(30) DEFAULT NULL,
`diversmardi` double DEFAULT NULL,
`typediversmardi` varchar(30) DEFAULT NULL,
`diversmercredi` double DEFAULT NULL,
`typediversmercredi` varchar(30) NOT NULL,
`diversjeudi` double DEFAULT NULL,
`typediversjeudi` varchar(30) NOT NULL,
`diversvendredi` double DEFAULT NULL,
`typediversvendredi` varchar(30) NOT NULL,
`paye` varchar(1) NOT NULL DEFAULT 'N'
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Déchargement des données de la table `frais`
--
INSERT INTO `frais` (`ID`, `nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`, `kmautolundi`, `kmautovendredi`, `parkinglundi`, `parkingmardi`, `parkingmercredi`, `parkingjeudi`, `parkingvendredi`, `hotellundi`, `hotelmardi`, `hotelmercredi`, `hoteljeudi`, `hotelvendredi`, `repassoirlundi`, `repassoirmardi`, `repassoirmercredi`, `repassoirjeudi`, `repassoirvendredi`, `postelundi`, `postemardi`, `postemercredi`, `postevendredi`, `postejeudi`, `repaslundi`, `clientlundi`, `repasmardi`, `clientmardi`, `repasmercredi`, `clientmercredi`, `repasjeudi`, `clientjeudi`, `repasvendredi`, `clientvendredi`, `diverslundi`, `typediverslundi`, `diversmardi`, `typediversmardi`, `diversmercredi`, `typediversmercredi`, `diversjeudi`, `typediversjeudi`, `diversvendredi`, `typediversvendredi`, `paye`) VALUES
(1, 'HALOT', 32, 2017, '2017-08-07', 150, 250, NULL, NULL, 2, 10.2, NULL, NULL, NULL, 80, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 10, NULL, 25, NULL, 12, NULL, 50, 'GRAPHIC', NULL, NULL, NULL, '', 150, 'TRANSPORTS', NULL, '', NULL, '', NULL, '', 'Y'),
(2, 'HALOT', 33, 2017, '2017-08-17', 250, 358, NULL, NULL, 5, NULL, NULL, NULL, 12.6, 70, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 15, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 300, 'TRANSPORTS', NULL, '', NULL, '', NULL, '', 'Y'),
(4, 'LAURE', 32, 2017, '2017-08-17', 520, 800, 1000, 1512, 5, NULL, NULL, NULL, NULL, 120, NULL, NULL, NULL, NULL, 30, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 8.2, 14, NULL, 150, 'ADHERHONE', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', NULL, '', NULL, '', NULL, '', NULL, '', 'Y');
--
-- Index pour les tables déchargées
--
--
-- Index pour la table `frais`
--
ALTER TABLE `frais`
ADD PRIMARY KEY (`ID`);
--
-- AUTO_INCREMENT pour les tables déchargées
--
--
-- AUTO_INCREMENT pour la table `frais`
--
ALTER TABLE `frais`
MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
1
25 août 2017 à 16:43
25 août 2017 à 16:43
Voici le php de ma requête :
Sachant que je récupère la variable ainsi :
echo $req = "INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`,`parkinglundi`) VALUES ('$nom', '$semaine', '$annee', '$date', '$kmlundi', '$kmvendredi', '$parkinglundi')";
Sachant que je récupère la variable ainsi :
$parkinglundi = !empty($_POST['parkinglundi']) ? $_POST['parkinglundi'] : null;
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
1 550
>
isa--
Messages postés
77
Date d'inscription
lundi 16 septembre 2013
Statut
Membre
Dernière intervention
11 mars 2020
Modifié le 25 août 2017 à 17:28
Modifié le 25 août 2017 à 17:28
c'est le passage par une chaîne de caractères qui perturbe tout inutilement.
je pense que le plus simple sera de faire un prepare de ta requête, et ensuite execute.
exemple:
je pense que le plus simple sera de faire un prepare de ta requête, et ensuite execute.
exemple:
$sqlinsert = $db.prepare "INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`,`parkinglundi`) VALUES ( ? , ? , ? , ? , ? , ? , ? )"; $sqlinsert->execute(array($nom , $semaine , $annee , $date , $kmlundi , $kmvendredi , $parkinglundi ));
yg_be
Messages postés
23309
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
2 novembre 2024
Ambassadeur
1 550
25 août 2017 à 12:58
25 août 2017 à 12:58
parkingmardi ou parkinglundi?
jordane45
Messages postés
38269
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 novembre 2024
4 694
25 août 2017 à 19:07
25 août 2017 à 19:07
+1 pour les requêtes préparées ..... mais à utiliser correctement dans des blocs try/catch et après avoir activé la gestion des erreurs PDO
Voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et donc .. au niveau du code de la requête
après..... la structure de la table n'est pas top non plus.....
Stocker dans des colonnes des jours de semaine.... ce n'est pas vraiment la philosophie d'une bdd relationnelle ....
dès que j'ai un peu de temps... je proposerai une autre structure de bdd
Voir ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Et donc .. au niveau du code de la requête
//préparation de la requête et des variables $sql = "INSERT INTO `frais` (`nom`, `semaine`, `annee`, `date`, `kmlundi`, `kmvendredi`,`parkinglundi`) VALUES (:nom, :semaine, :annee, :date, :kmlundi, :kmvendredi,:parkinglundi)"; $datas = array(':nom'=>$nom, ':semaine' =>$semaine, ':annee' =>$annee, ':date' =>$date, ':kmlundi' =>$kmlundi, ':kmvendredi' =>$kmvendredi, ':parkinglundi'=>$parkinglundi ); //Execution de la requete try{ $requete = $bdd -> prepare($sql) ; $requete->execute($datas) ; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); }
après..... la structure de la table n'est pas top non plus.....
Stocker dans des colonnes des jours de semaine.... ce n'est pas vraiment la philosophie d'une bdd relationnelle ....
dès que j'ai un peu de temps... je proposerai une autre structure de bdd
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jordane45
Messages postés
38269
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
4 novembre 2024
4 694
25 août 2017 à 19:21
25 août 2017 à 19:21
Voilou ...
Pour gérer les notes de frais (visiblement c'est à ça que sert ta table actuelle.....) tu devrais utiliser un modèle de tables de ce genre :
Un "user" peut créer 0->N notes de frais
Une note de frais peut contenir de 0 à N "frais" et c'est là que tu peux dire si elle a été payée ou non (dans un champ de type enum ou un tynyint éventuellement )
Pour les frais tu indiques :
- La date (de là tu sauras automatiquement et sans souci via de simples requêtes : la semaine, le mois , l'année.... le jour de la semaine...)
- Le type de frais : Hotel, Divers, Repas midi, Repas soir etc...
- Le client concerné
- Le montant
Bien sûr.. tu peux étoffer les différentes tables pour y ajouter les éventuels champs manquants.... mais efforce toi de conservé un modèle "objet".
Tout mettre dans une seule table avec 50 colonnes n'a aucun intérêt hormis compliqué la maintenance et l'exploitation des données.
Bonne refonte et bonne continuation :-)
Pour gérer les notes de frais (visiblement c'est à ça que sert ta table actuelle.....) tu devrais utiliser un modèle de tables de ce genre :
Un "user" peut créer 0->N notes de frais
Une note de frais peut contenir de 0 à N "frais" et c'est là que tu peux dire si elle a été payée ou non (dans un champ de type enum ou un tynyint éventuellement )
Pour les frais tu indiques :
- La date (de là tu sauras automatiquement et sans souci via de simples requêtes : la semaine, le mois , l'année.... le jour de la semaine...)
- Le type de frais : Hotel, Divers, Repas midi, Repas soir etc...
- Le client concerné
- Le montant
Bien sûr.. tu peux étoffer les différentes tables pour y ajouter les éventuels champs manquants.... mais efforce toi de conservé un modèle "objet".
Tout mettre dans une seule table avec 50 colonnes n'a aucun intérêt hormis compliqué la maintenance et l'exploitation des données.
Bonne refonte et bonne continuation :-)