Comment échapper une partie de chaine à l'INSERT ?
Résolu/Fermé
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
-
20 nov. 2021 à 09:17
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 20 nov. 2021 à 12:20
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 9 avril 2024 - 20 nov. 2021 à 12:20
A voir également:
- Comment échapper une partie de chaine à l'INSERT ?
- Touche insert - Guide
- Chaine tnt gratuite sur mobile - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Plus de chaine tv - Guide
- Nouvelle chaîne tnt gratuite 2024 - Accueil - TV & Vidéo
3 réponses
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
20 nov. 2021 à 10:25
20 nov. 2021 à 10:25
Bonjour,
regarde bien cette partie de ta requête .. tu devrais y voir une erreur
regarde bien cette partie de ta requête .. tu devrais y voir une erreur
:prestation, ;prix,
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
Modifié le 20 nov. 2021 à 11:40
Modifié le 20 nov. 2021 à 11:40
Merci Jordane,
Effectivement, j'ai tapé à côté sur le ; au lieu du :
Mais j'ai toujours mon erreur.
Ce code pour tester renvoi bien toutes mes valeurs en provenance du formulaire contrat-ajout1.php :
contrat-ajout2.php
Affichage :
8
Chambre village (2 personnes)
75
1
Mais je ne veux pas enregistrer dans la table "compositions" la data $ligne_cont[1] car elle n'est pas utile, son id est déjà dans $ligne_cont[0]. Le problème c'est que j'ai besoin dans la page formulaire (contrat-ajout1.php) d'afficher la désignation, car l'utilisateur ne sait pas ce que c'est 8 !
Cf le code de contrat-ajout1.php
Et je ne peux pas enlever text_prestation de chaine_contrat.value car j'en ai besoin pour l'affichage à destination de l'utilisateur :
Effectivement, j'ai tapé à côté sur le ; au lieu du :
Mais j'ai toujours mon erreur.
Ce code pour tester renvoi bien toutes mes valeurs en provenance du formulaire contrat-ajout1.php :
contrat-ajout2.php
for ($ligne=0;$ligne<sizeof($tab_contrat);$ligne++){ if($tab_contrat[$ligne] !=""){ $ligne_cont = explode(";", $tab_contrat[$ligne]); //Requête préparée pour l'ajout : //$requete2 = $bdd->prepare('INSERT INTO compositions(id_contrat, id_prestation, prix, quantite) VALUES(:contrat, :prestation, :prix, :quantite)'); //$requete2->execute(array( //'id_contrat' => $last_insert_id, //'id_prestation' => $ligne_cont[0], //'prix' => $ligne_cont[1], //'quantite' => $ligne_cont[2] echo $ligne_cont[0] . '<br>'; echo $ligne_cont[1] . '<br>'; echo $ligne_cont[2] . '<br>'; echo $ligne_cont[3] . '<br>'; //)); }
Affichage :
8
Chambre village (2 personnes)
75
1
Mais je ne veux pas enregistrer dans la table "compositions" la data $ligne_cont[1] car elle n'est pas utile, son id est déjà dans $ligne_cont[0]. Le problème c'est que j'ai besoin dans la page formulaire (contrat-ajout1.php) d'afficher la désignation, car l'utilisateur ne sait pas ce que c'est 8 !
Cf le code de contrat-ajout1.php
var tot_contrat=0; var selectElmt = document.getElementById("prestation"); function plus_contrat(){ if (prestation.value !=0 && prix.value !=0 && quantite.value !=0) { var text_prestation = selectElmt.options[selectElmt.selectedIndex].text; var ref_prestation = prestation.value; var ref_prix = prix.value; var ref_quantite = quantite.value; chaine_contrat.value += "|" + ref_prestation + ";" + text_prestation + ";" + ref_prix + ";" + ref_quantite; contrat(); } }
Et je ne peux pas enlever text_prestation de chaine_contrat.value car j'en ai besoin pour l'affichage à destination de l'utilisateur :
function contrat(){ var tableau_contrat = chaine_contrat.value.split('|'); var nb_lignes = tableau_contrat.length; document.getElementById("detail_contrat").innerHTML =""; for(ligne=0;ligne<nb_lignes;ligne++){ if(tableau_contrat[ligne] !=""){ var ligne_contrat = tableau_contrat[ligne].split(';'); document.getElementById("detail_contrat").innerHTML += "<div class='bord'></div>"; // On peut masquer l'id de la prestation, l'utilisateur n'en a pas besoin //document.getElementById("detail_contrat").innerHTML += "<div class='col1'>" + ligne_contrat[0] + "</div>"; document.getElementById("detail_contrat").innerHTML += "<div class='col2'>" + ligne_contrat[1] + "</div>"; document.getElementById("detail_contrat").innerHTML += "<div class='col3'>" + ligne_contrat[2] + "</div>"; document.getElementById("detail_contrat").innerHTML += "<div class='col4'>" + ligne_contrat[3] + "</div>"; document.getElementById("detail_contrat").innerHTML += "<div class='bord'></div>"; } } }
jordane45
Messages postés
38358
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 décembre 2024
4 719
20 nov. 2021 à 11:45
20 nov. 2021 à 11:45
Ton erreur était un problème d'insertion dans la base de données à cause de ta faute de frappe.
Je ne vois pas, comment, en ayant corriger les erreurs que je t'ai montré, tu puisses avoir toujours le même souci....
Si tu as un autre problème merci de créer une discussion propre à celui-ci.
Je ne vois pas, comment, en ayant corriger les erreurs que je t'ai montré, tu puisses avoir toujours le même souci....
Si tu as un autre problème merci de créer une discussion propre à celui-ci.
emrh
Messages postés
427
Date d'inscription
mardi 9 décembre 2014
Statut
Membre
Dernière intervention
9 avril 2024
20
20 nov. 2021 à 12:20
20 nov. 2021 à 12:20
J'ai tout repris en détail en faisant plutôt des copiés/collés et mon erreur venait effectivement
d'une faute de frappe à l'insertion :
la dernière colonne de la table compositions est 'quantites' et non 'quantite' !
Merci Jordan et désolé pour la perte de temps !
d'une faute de frappe à l'insertion :
la dernière colonne de la table compositions est 'quantites' et non 'quantite' !
Merci Jordan et désolé pour la perte de temps !