Probleme ERREUR PDO

Probleme ERREUR PDO - PHP - Programmation

Marsh Posté le 29-01-2013 à 22:10:46    

Bonjour,

 

J'ai un problème. J'ai une page ADMIN et dans cette page j'ai une liste de tous les articles que je vends. A coté j'ai un bouton ajouter, modifier pour modifier et Supprimer pour supprimer.

 

Ajouter fonctionne, par contre modifier quand je clique sur modifier, sa ouvre une page  avec des champs (en HTML) qui doivent se remplir via la BDD. Mais là, ils sont vide. et supprimer ça ne fonctionne pas.

 

Pourriez vous m'aidez svp?

 

Voici le code de ma page admin.php

 
Code :
  1. <div class="modif">
  2. <h4>Modifier un produits</h4>
  3. <form method="POST" action="modif_produits.php"></br>
  4. <select name="choix du produits" size="1" style="width:auto">
  5.    <?php
  6.     include ("connect_db.php" );
  7.     $req3=$bdd->prepare("SELECT Nom FROM produits" ); // on prépare notre requête
  8.     $req3->execute(array());
  9.     ?>
  10.                                    
  11.          <?php while ($donnees = $req3->fetch())
  12.        {
  13.          echo $donnees['Nom'];
  14.      ?>
  15. <option value="<?php echo $donnees['Nom']; ?>"><?php echo $donnees['Nom']; ?></option>
  16.     <?php
  17.     }
  18.     ?>
  19. </select></br></br>
  20. <center><input type="submit" value="Modifier"></center>
  21. </form>
  22.                                    
  23.                                    
  24. </div>


Voici la page modif_produits.php

Code :
  1. <?php
  2. include ("connect_db.php" );
  3. var_dump($_POST); //affiche le ARRAY COMPLET
  4. $req=$bdd->prepare("SELECT Nom,Categories,Description,Stock,Prix FROM produits WHERE Nom=:Nom" ); // on prépare notre requête
  5. $req->execute(array());
  6. $donnees = $req->fetch(PDO::FETCH_ASSOC);
  7. while($donnees = $req->fetch())
  8. {
  9. //header("Refresh: 1; url=administrateur.php" );
  10. ?>
  11. <form method="POST" action='MAJ_produits.php'>
  12. <label for="Nom">Nom<br /></label>
  13. <input type="text" name="Nom" <?php echo 'value="'. $donnees['Nom'] .'"'; ?>/><br />
  14.           
  15. <label for="Categories">Categories<br /></label>
  16. <input type="text" name="Categories" <?php echo 'value="'. $donnees['Categories'] .'"'; ?>/><br />
  17.             
  18. <label for="Description">Description<br /></label>
  19. <input type="text" name="Description" <?php echo 'value="'. $donnees['Description'] .'"'; ?>/><br />
  20. <label for="Stock">Stock<br /></label>
  21. <input type="text" name="Stock" <?php echo 'value="'. $donnees['Stock'] .'"'; ?>/><br />
  22. <label for="Prix">Prix<br /></label>
  23. <input type="text" name="Prix" <?php echo 'value="'. $donnees['Prix'] .'"'; ?>/></br></br>
  24. <center><input type="submit" value="Valider"></center>
  25. </form>
  26. <?php
  27. }
  28. ?>


et on ne sais jamais. Voici le code de la MAJ (je ne l'ai pas encore testé):

Code :
  1. <?php
  2. include ("connect_db.php" );
  3. $Nom=($_POST['Nom']);
  4. $Categories=($_POST['Categories']);
  5. $Description=($_POST['Description']);
  6. $Stock=($_POST['Stock']);
  7. $Prix=($_POST['Prix']);
  8. $req5=$bdd->prepare('UPDATE produits SET * = :Nom, :Categories, :Description, :Stock, :Prix WHERE Nom=:Nom');
  9. $req5->execute(array(
  10.     'Nom' => $Nom,
  11.     'Categories' => $Categories,
  12.     'Description' => $Description,
  13.     'Stock' => $Stock,
  14.     'Prix' => $Prix
  15.     ));
  16.     echo 'Produits modifiez!';
  17.     header("Refresh: 1; url=admin.php" );
  18. ?>
 

J'ai cette erreur pour la page modif_produits:

 

Warning: PDOStatement::execute() [<a href='pdostatement.execute'>pdostatement.execute</a>]: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound in C:\wamp\www\modif_produits.php on line 9

 

line 9 = execute (array());


Message édité par Escambray le 29-01-2013 à 22:12:06
Reply

Marsh Posté le 29-01-2013 à 22:10:46   

Reply

Marsh Posté le 30-01-2013 à 00:45:29    

Ligne 8 : ":Nom", est préparé mais pas remplacé par la variable correspondante (bind).
Il suffit de lire le message d'erreur.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed