Bonjour à tous.
Ça fait longtemps que je n'avais pas programmé et je suis en train de m'y remettre et j'avoue que pour certains trucs, je suis un peu perdu. Si je vous écris aujourd'hui, c'est parce que j'ai un bug que je comprends, mais que je ne sais pas comment résoudre.
Alors, j'ai un premier fichier qui contient ma connexion à la base Mysql
Et dans un autre fichier, je veux utiliser une fonction qui fait une requête Mysql.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <?php try { $db = new PDO('mysql:host=########;dbname=##########;charset=utf8', '########', '###########'); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?>
Vous aurez peut-être compris, dans ce fichier, je fais un affichage d'un résultat, et il y a des catégories, et cette fonction permet d'afficher le nom de la catégorie, qui est dans une autre table, en partant de l'id de la catégorie qui est enregistré dans la table principale.
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 function nature_nom($id) { $sql_nature_nom = "SELECT * FROM geline_compta_nature WHERE nature_id =:id"; $r_nature_nom = $db->prepare($sql_nature_nom); $r_nature_nom->execute([ 'id' => $id, ]); $resultats_nature_nom = $r_nature_nom->fetchAll(); // On affiche chaque recette une à une foreach ($resultats_nature_nom as $resultat_nature_nom) { return $resultat_nature_nom['nature_nom']; } }
En gros, la requête de base affiche un truc du genre
Et je veux créer une fonction pour afficher les noms de Nature, Activité, ...
Alors, mon bug, c'est que ca m'affiche une erreur et je comprend bien que c'est parce qu'il n'arrive pas à récupérer la connexion PDO contenu dans $db.
Fatal error: Uncaught Error: Call to a member function prepare() on null in index.php:11 Stack trace: #0 /index.php(53): nature_nom('1') #1 {main} thrown in index.php on line 11
Suis-je assez clair ? Avez vous besoin d'autres renseignements pour m'aider ?
En tout cas, merci d'avance pour votre aide et ce tout ce qui pourra me faire avancer.
Cordialement
Randoo








Répondre avec citation







Partager