Bonjour, débutant en php, je m'entraîne à faire une mini base de données avec une seule table (pour l'instant) qui recense une liste d'ingrédients.
Je suppose que le problème que je vais vous exposer va vous paraître simple comme bonjour mais pour moi je galère depuis 2 semaines.
La table a été créée via phpmyadmin et ne contient que 2 champs: id pour la clé primaire en auto increment et lib_ing pour le libellé de l'ingrédient.
J'arrive à visualiser l'intégralité de mes ingrédients et y compris faire une recherche sur une partie d'un mot recherché via un formulaire ce qui est déjà un exploit pour moi. J'ai également réussi à faire que si l'ingrédient n'a pas été trouvé il propose de le rajouter.
Maintenant ce que je n'arrive pas à faire c'est modifier le libellé d'un ingrédient.
Je prends un exemple concret: j'ai fait une faute de frappe exprès pour pouvoir modifier le libellé d'un ingrédient. (en l'occurrence nous prendrons l'ingrédient chocolat que j'ai volontairement saisi en chocolya pour pouvoir permettre à l'utilisateur de le corriger).
J'arrive dans mon phpmyadmin à récupérer la valeur id de ma clé primaire de l'ingrédient demandé (chocolya): il me trouve la valeur 5. C'est cette valeur que je voudrais récupérer en $_POST après le résultat de ma requête pour la passer dans mon update (situé sur une autre page php).
Le problème est que sur mon code php, il me génère un message d'erreur dès la requête pour afficher cette valeur et j'ai beau chercher je ne trouve pas.
Merci de votre aide.
Voici les codes utilisés:
Formulaire de recherche d'ingrédient à modifier.
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <form name="formodifing" action= "ingaafficher.php" method="post"> Tapez le nom de l'ingrédient à modifier : <input type = "text" name ="mding" /> <input type = "submit" name="Id_ing" value = "Chercher"/> </form>
Ingrédient à afficher
et l'erreur qu'il m'affiche lorsque j'appelle le fichier ingafficher.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php session_start(); $id = $_POST['mding']; try { $bdr= new PDO('mysql:host=localhost;dbname=recettes;charset=utf8', 'root', ''); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } $sql="SELECT id from ingredients where lib_ing=$id"; $reponse=$bdr->exec($sql); while ($donnees = $reponse->fetch()) { echo "$donnees[id]"; } echo "<br>"; ?>
Pour information, j'ai même testé ma variable mding qui me trouve bien la valeur que j'ai saisi précédemment donc le problème ne vient pas de mding.Fatal error: Call to a member function fetch() on boolean in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\test\ingaafficher.php on line 14
Merci de me dire où j'ai effectué l'erreur car je ne vois pas où elle est et après comment je pourrais sauvegarder cette donnée dans une variable $_POST.
Cordialement,
Christophe.
Partager