Erreur !: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'id_type_
Résolu/Fermé
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
-
Modifié le 9 juin 2020 à 11:36
jordane45 Messages postés 38268 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 novembre 2024 - 9 juin 2020 à 14:06
jordane45 Messages postés 38268 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 novembre 2024 - 9 juin 2020 à 14:06
A voir également:
- 1452 cannot add or update a child row a foreign key constraint fails
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur g030 - Forum Bbox Bouygues
- Erreur 10016 epson - Forum Imprimante
5 réponses
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
9 juin 2020 à 11:43
9 juin 2020 à 11:43
Bonjour,
Commence par nous poster ton code correctement ( en utilisant les balises de code)
Explications ( à lire ENTIEREMENT... ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Donnes nous également le message d'erreur complet.
Commence par nous poster ton code correctement ( en utilisant les balises de code)
Explications ( à lire ENTIEREMENT... ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Donnes nous également le message d'erreur complet.
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
Modifié le 9 juin 2020 à 11:47
Modifié le 9 juin 2020 à 11:47
Le formulaire:
Les variables :
Et la fonction qui permet de mettre les donnée dans la bdd:
<form method="post" id="saisie" action="./?action=couter" onsubmit="return valider()"> <br/> <div class="form-group"> <label for="quotient"class="label">Cout</label> <input type="text" class="form-control" name="montant" id="montant" placeholder="0"> </br> <label for="">Tranches: </label> <select name="tranchesC" id="tranchesC"> <option value="">..Tranche..</option> <?php for ($i = 0; $i < count($getTranche); $i++) {?> <option value="<?= $i; ?>"> <?= $getTranche[$i]["id"];?> </option> <?php } ?> </select> <label for="">Type de Cours: </label> <select name="typeCour" id="typeCour"> <option value="">..Type de cour..</option> <?php for ($i = 0; $i < count($getTypeCour); $i++) {?> <option value="<?= $i; ?>"> <?=$getTypeCour[$i]["libelle"];?> </option> <?php } ?> </select> </div> <button name="bouton" id="bouton" type="submit" class="btn btn-primary">Envoyer</button> </form>
Les variables :
$couter = $_POST['montant']; $tranche=$_POST['tranchesC']; $typeCour=$_POST['typeCour'];
Et la fonction qui permet de mettre les donnée dans la bdd:
function InsertCouter($couter,$tranche,$typeCour){ try { $cnx = connexionPDO(); $req = $cnx->prepare("Insert into couter(montant,id_tranches,id_type_cour) Value(:montant,(Select id from tranches where id=:tranche),(Select id from type_cour where id=:typeCour))"); $req->bindValue(':montant', $couter, PDO::PARAM_INT); $req->bindValue(':tranche', $tranche, PDO::PARAM_INT); $req->bindValue(':typeCour', $typeCour, PDO::PARAM_INT); $resultat = $req->execute(); } catch (PDOException $e) { print "Erreur !: " . $e->getMessage(); die(); }
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
9 juin 2020 à 11:47
9 juin 2020 à 11:47
Visiblement...... tu n'as pas lu le lien que je t'ai donné.
Donc.. merci de nous poster ton code correctement.
Donc.. merci de nous poster ton code correctement.
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
>
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
9 juin 2020 à 11:47
9 juin 2020 à 11:47
j'étais en train de la faire
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
9 juin 2020 à 11:50
9 juin 2020 à 11:50
Je remarque au passage quelques erreurs....
Sachant que tu fais :
.... id=:typeCour ..... donc pourquoi faire une sous-requête ??
Idem pour Tranche....
Où vas tu chercher ta requête ??
Il suffit de faire
$req = $cnx->prepare("Insert into couter(montant,id_tranches,id_type_cour) Value(:montant,(Select id from tranches where id=:tranche),(Select id from type_cour where id=:typeCour))");
Sachant que tu fais :
Select id from type_cour where id=:typeCour
.... id=:typeCour ..... donc pourquoi faire une sous-requête ??
Idem pour Tranche....
Où vas tu chercher ta requête ??
Il suffit de faire
$sql = "Insert into couter(montant,id_tranches,id_type_cour) Value(:montant, :tranche, :typeCour )"; $req = $cnx->prepare($sql);
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
9 juin 2020 à 11:52
9 juin 2020 à 11:52
J'ai essayé de le faire mais sa me fait exactement la même erreur sur un autre formulaire, donc j'ai due faire une sous requête vu comme c'est sur une table étrangère
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
9 juin 2020 à 11:53
9 juin 2020 à 11:53
donc j'ai due faire une sous requête vu comme c'est sur une table étrangère
Ben... non... y'a aucun intérêt.
Par contre, tant que tu ne nous donneras pas le message d'erreur EXACT et COMPLET ... difficile de t'en dire plus....
La structure des tables pourrait également nous servir....
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
9 juin 2020 à 11:56
9 juin 2020 à 11:56
La structure de la table
J'ai modifié comme tu me l'a dis mais sa met maintenant ça comme erreur: Erreur !: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`stage`.`couter`, CONSTRAINT `couter_type_cour_FK` FOREIGN KEY (`id_type_cour`) REFERENCES `type_cour` (`id`))
J'ai modifié comme tu me l'a dis mais sa met maintenant ça comme erreur: Erreur !: SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`stage`.`couter`, CONSTRAINT `couter_type_cour_FK` FOREIGN KEY (`id_type_cour`) REFERENCES `type_cour` (`id`))
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
9 juin 2020 à 12:09
9 juin 2020 à 12:09
Est-ce que l'id_type_cour que tu essaies d'insérer dans ta table existe t'il dans la table type_cour ?
Quelle est la valeur de ta variable $typeCour ?
Quelle est la valeur de ta variable $typeCour ?
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
>
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
9 juin 2020 à 12:11
9 juin 2020 à 12:11
La table type_cour existe bien, est la variable $typecour contient le contenu du select typeCour du formulaire
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
>
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
9 juin 2020 à 12:16
9 juin 2020 à 12:16
Je ne t'ai pas demandé si la TABLE type_cour existe .... mais si elle contient des valeurs... et de surcroit.. l' ID que tu essaies d'utiliser dans ta variable $typeCour
Je ne t'ai, par ailleurs, pas demandé d'où venait la variable $typeCour ... mais quelle était sa valeur ( 1, 2 , 10 , 555 ???) que tu essaies d'insérer dans ta table .
Je ne t'ai, par ailleurs, pas demandé d'où venait la variable $typeCour ... mais quelle était sa valeur ( 1, 2 , 10 , 555 ???) que tu essaies d'insérer dans ta table .
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
>
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
9 juin 2020 à 12:18
9 juin 2020 à 12:18
La valeur $typeCour contient soit 1 ou 2, et l'id que j'essaie d'insérer correspond à ses valeurs
jordane45
Messages postés
38268
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 novembre 2024
4 694
>
drenfa
Messages postés
32
Date d'inscription
samedi 21 avril 2018
Statut
Membre
Dernière intervention
14 juillet 2021
9 juin 2020 à 12:35
9 juin 2020 à 12:35
C'est marrant.... vu ton code... je pense que ça commence à 0 ..
Il serait préférable de le modifier comme ceci
<select name="typeCour" id="typeCour"> <option value="">..Type de cour..</option> <?php for ($i = 0; $i < count($getTypeCour); $i++) {?> <option value="<?= $i; ?>"> <?=$getTypeCour[$i]["libelle"];?> </option> <?php } ?> </select>
Il serait préférable de le modifier comme ceci
<select name="typeCour" id="typeCour"> <option value="">..Type de cour..</option> <?php foreach($getTypeCour as $T ) { ?> <option value="<?php echo $T['id']; ?>"> <?php echo $T["libelle"]; ?> </option> <?php } ?> </select>