Déjà, comme le dit le message, tu as un nombre de paramètres dans ta requête (22) différents du nombre de variables que tu bind (24 )
En plus, tu as des parenthèses en trop dans ta requête... il faut les retirer !
2°) Même en supprimant les 2 premiers paramètres , j' obtient toujours cette alarme.
ECHEC : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
Et pour les paramètres... sans voir ce que tu as modifié impossible de te répondre.
Il faut bien que tu aies le même nombre entre tes bind et les variables de ta requête.
pour plus de lisibilité, je t'invite, au passage, à ne pas hésiter à faire un retour à la ligne devant chaque variable dans ta requête SQL
Merci,
J'ai fait quelques corrections , notament dans le transfert des données POST, ça a amélioré la réponse.
Le nombre de variables liées semble correct (20), mais j'ai toujours cette alarme dans la réponse:
JSON
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
Données brutes:
ECHEC : SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens
Et bien je ne sais pas, je veux juste modifier le contenu de la database, je n'espère aucun "retour". C'est la première fois que je fais ça, j'ai le niveau "grand débutant" en programmation php... Lol...
Je veux juste retourner sur ma page principale après modification de la database. La modification de la database s'est faite à ce stade, mais la page d'erreur s'affiche.
JC
Pourrais-tu nous poster le contenu de cnxbdd.php pour voir s'il n'y aurait pas une coquille ailleurs ? Pense à anonymiser les identifiants de connexion !
Bonjour,
Car il fait de l'ajax ... c'est pour ça que tu ne vois pas le code de son formulaire et qu'il a mis un header application/json ( qui pour moi n'est pas utile et qu'il devrait retirer ! )
Bonsoir ,
J'ai choisi application/json, car à mon niveau d'apprentissage tout seul dans mon coin c'est la seule technique que je connais.
Je peux partager le reste du code , c'est pas secret je pensais que ce n'étais pas utile pour cette problèmatique.
Le formulaire est le suivant:
Je me doute que c'est loin de la perfection...
<!-- ************************************************************ -->
<!-- MODIFIER : FORMULAIRE MODIFIER UNE REFERENCE DANS LA LISTE -->
<!-- MODIFIER UNE REFERENCE DANS LA LISTE" -->
<!-- ************************************************************ -->
<!-- ****** FORMULAIRE 1: SELECTION OUTIL A MODIFIER ****** -->
<form id='idFormModifier1' action="modifier1.php" method="post">
<div class = legendeM >
<p id = 'legendeM1'>Indiquer n° ordre ou réference magasin.
<br>Une seule entrée est demandée.</p>
<!-- ****** CHOIX NUMERO ORDRE ****** -->
<div class="classNumIdM">
<label id='idLblNumIdM' For='idInputNumIdM'>N° ORDRE: </label>
<input id = "idInputNumIdM" name = "IdM"
type = "number" min = "100001" max = "102000" placeholder = 'Numéro Ordre: '>
</div>
<!-- ****** CHOIX NUMERO MAGASIN ****** -->
<div class="classNumMagM">
<label id='idLblRefMagM' For='idInputRefMagM'>REF MAGASIN</label>
<input id = "idInputRefMagM" name = "refMagM"
type = "number" step = "1" min = "0" placeholder = 'Référence magasin: '>
</div>
<!-- BOUTON VALIDER RECHERCHE -->
<!-- BOUTON VALIDER RECHERCHE -->
<input id = "idboutonRechercheModif" class = 'classboutonRechercheModif'
type = "button" value = "VALIDER">
</div>
</form>
<!-- ****** FORMULAIRE 2: MODIFIER LES DONNEES ****** -->
<form id='idFormModifier2' action="modifier2.php" method="post">
<div class='classFModifier' id='idDIVModifier'>
<div class='classFModifier_P1'>
<!-- ****** REPORT ID et REF_MAG ****** -->
<div class='classIdRefMagM2'>
<input id = "idInputidM2" name = "idM2">
<input id = "idInputRefMagM2" name = "refMagM2">
<input id = "idInputFamilleM2" name = "familleOutilM2">
</div>
<!-- ****** CHOIX FAMILLE ****** -->
<div class='classChoixFamilleM'>
<label id='idLblFamilleM' For="idSlctCFamilleM">FAMILLE OUTIL</label>
<select id="idSlctFamilleM" name = "familleOutil" autofocus selected = 'FRAISE'>
<option value="">--CHOISIR UNE OPTION--</option>
<option value="FRAISE">FRAISE</option>
<option value="FORET">FORET</option>
<option value="TARAUD">TARAUD</option>
</select>
</div>
<!-- ****** CHOIX SOUS FAMILLE ****** -->
<div id= 'idChoix_S_FamilleM' class='classChoix_S_FamilleM'>
<label id='idLbl_S_FamilleM' For="idSlctC_S_FamilleM">SOUS FAMILLE</label>
<select id="idSlct_S_FamilleM" name="SousFamille">
<option value="">--CHOISIR UNE OPTION--</option>
</select>
</div>
<!-- ****** CHOIX MATIERE ****** -->
<div class='classChoixMatiereM'>
<label id='idLblMatiereM' For="idSlctCMatiereM">MATIERE OUTIL</label>
<select id="idSlctMatiereM" name = "Matiere">
<option value="">--CHOISIR UNE OPTION--</option>
<option value="CARBURE">CARBURE</option>
<option value="ACIER_RAPIDE">ACIER RAPIDE</option>
</select>
</div>
<!-- ****** NOMBRE DE DENTS OUTIL ****** -->
<div class="classNbreZM">
<label id='idLblNbreZM' For='idInputNbreZM'>NOMBRE DE DENTS OUTIL</label>
<input id = "idInputNbreZM" name = "NbreZ"
type = "number" min = "0" max = "4" placeholder = 'NOMBRE DE DENTS'>
</div>
<!-- ****** DIAMETRE 1 ****** -->
<div class="classDia1M">
<label id='idLblCDia1M' For='idInputDia1M'>DIAMETRE 1</label>
<input id = "idInputDia1M" name = "Dia1" type = "text"
min = "0" max = "500" step = "0.01" placeholder = ' 1 ER DIAMETRE'>
</div>
<!-- ****** LONGUEUR 1 ****** -->
<div class="classLong1M">
<label id='idLblCLong1M' For='idInputLong1M'>LONGUEUR 1</label>
<input id = "idInputLong1M" name = "Long1" type = "number"
min = "0" max = "200" step = "0.1" placeholder = 'LONGUEUR 1er DIAMETRE'>
</div>
<!-- ****** DIAMETRE 2 ****** -->
<div class="classDia2M">
<label id='idLblDia2M' For='idInputDia2M'>DIAMETRE 2</label>
<input id = "idInputDia2M" name = "Dia2" min = "0" max = "500"
type = "text" pattern="[0-9]{1,3}" step = "0.01" placeholder = ' 2 EME DIAMETRE'>
</div>
<!-- ****** DIAMETRE 3 ****** -->
<div class="classDia3M">
<label id='idLblCDia3M' For='idInputDia3M'>DIAMETRE 3</label>
<input id = "idInputDia3M" name = "Dia3" type = "text" min = "0" max = "500"
step = "0.01" pattern="[0-9]{1,3}" placeholder = ' 3 EME DIAMETRE' >
</div>
<!-- ****** LONGUEUR UTILE ****** -->
<div class="classLongUtileM">
<label id='idLblCLongUtileM' For='idInputLongUtileM'>LONGUEUR UTILE</label>
<input id = "idInputLongUtileM" name = "LongUtile" type = "number"
min = "0" max = "200" step = "1" placeholder = 'LONGUEUR UTILE'>
</div>
<!-- ****** LONGUEUR TOTALE ****** -->
<div class="classLongTotaleM">
<label id='idLblCLongTotaleM' For='idInputLongTotaleM'>LONGUEUR TOTALE</label>
<input id = "idInputLongTotaleM" name = "LongTotale" type = "number"
min = "0" max = "250" step = "1" placeholder = 'LONGUEUR TOTALE'>
</div>
<!-- ****** CARACTERISTIQUE 1 ****** -->
<div class="classCaract1M">
<label id='idLblCCaract1M' For='idInputCaract1M'>CARASTERISTIQUE 1</label>
<input id = "idInputCaract1M" name = "Caract1" pattern="[a-zA-Z0-9-\s\.]{0,20}"
list = "idDataListCaract1" placeholder = 'CARACTERISTIQUE 1'>
</div>
</div>
<div class='classFModifier_P2'>
<!-- ****** FOURNISSEUR ****** -->
<div class="classFournisseurM">
<label id='idLblCFournisseurM' For='idInputFournisseurM'>FOURNISSEUR</label>
<input id = "idInputFournisseurM" name = "Fournisseur" pattern="[a-zA-Z0-9-\s]{0,12}"
list = "idDataListFournisseur" placeholder = 'FOURNISSEUR'>
</div>
<!-- ****** REFERENCE FOURNISSEUR ****** -->
<div class="classRef_FournisseurM">
<label id='idLblCRef_FournisseurM' For='idInputRef_FournisseurM'>REFERENCE FOURNISSEUR</label>
<input id = "idInputRef_FournisseurM" name = "Ref_Fournisseur"
pattern="[a-zA-Z0-9-\s\.]{0,15}" placeholder = 'REFERENCE FOURNISSEUR'>
</div>
<!-- ****** PRIX ET QUANTITE MINI ****** -->
<div class="classPrixM">
<label id='idLblCPrix_QteMiniM' For='idInputPrixM'>PRIX & QUANTITE MINI</label>
<input id = "idInputPrixM" name = "Prix" type = "number"
min = "0" placeholder = 'Prix HT'>
<input id = "idInputQteMiniM" name = "QteMini" type = "number" min = "0"
step = "1">
</div>
</div>
<div class='classFModifier_P3'>
<!-- ****** CAS D EMPLOI 1 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi1M' For='idInputCasEmploi1M'>CAS D EMPLOI 1</label>
<input id = "idInputCasEmploi1M" name = "CasEmploi1" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 1'>
</div>
<!-- ****** CAS D EMPLOI 2 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi2M' For='idInputCasEmploi2M'>CAS D EMPLOI 2</label>
<input id = "idInputCasEmploi2M" name = "CasEmploi2" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 2'>
</div>
<!-- ****** CAS D EMPLOI 3 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi3M' For='idInputCasEmploi3M'>CAS D EMPLOI 3</label>
<input id = "idInputCasEmploi3M" name = "CasEmploi3" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 3'>
</div>
<!-- ****** CAS D EMPLOI 4 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi4M' For='idInputCasEmploi4M'>CAS D EMPLOI 4</label>
<input id = "idInputCasEmploi4M" name = "CasEmploi4" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 4'>
</div>
<!-- ****** CAS D EMPLOI 5 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi5M' For='idInputCasEmploi5M'>CAS D EMPLOI 5</label>
<input id = "idInputCasEmploi5M" name = "CasEmploi5" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 5'>
</div>
<!-- ****** CAS D EMPLOI 6 ****** -->
<div class="classCasEmploiM">
<label id='idLblCCasEmploi6M' For='idInputCasEmploi6M'>CAS D EMPLOI 6</label>
<input id = "idInputCasEmploi6M" name = "CasEmploi6" pattern="[A-Z0-9\s]{0,20}"
placeholder = 'CAS EMPLOI 6'>
</div>
</div>
<!-- ******* BOUTONS RECHERCHE ****** -->
<div class = "boutonsModification">
<!-- ******* BOUTON VALIDER RECHERCHE -->
<input id = "idboutonValiderModification" class = 'classboutonValiderModification'
type = "submit" value = "VALIDER">
<!-- ****** BOUTON RESET DE RECHERCHE ****** -->
<input id = "idboutonResetModification" class = 'classboutonResetModification'
type = "reset" value = "RESET">
<!-- ****** BOUTON FERMER RECHERCHE ****** -->
<input id = "idboutonFermerModification" class = 'classboutonFermerModification'
type = "reset" value = "FERMER">
</div>
</div>
</form>