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
16 janvier 2023
-
20 nov. 2021 à 09:17
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 16 janvier 2023 - 20 nov. 2021 à 12:20
emrh Messages postés 427 Date d'inscription mardi 9 décembre 2014 Statut Membre Dernière intervention 16 janvier 2023 - 20 nov. 2021 à 12:20
A voir également:
- Comment échapper une partie de chaine à l'INSERT ?
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Flouter une partie d'une photo - Guide
- Comment trouver un numéro à partir du nom et prénom ✓ - Forum Mobile
- Excel extraire chaine de caractère après un caractère ✓ - Forum Excel
- Plus de chaine tv - Guide
3 réponses
jordane45
Messages postés
36864
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2023
4 466
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
16 janvier 2023
16
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
36864
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
28 janvier 2023
4 466
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
16 janvier 2023
16
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 !