ERREUR Notice: Undefined variable: id... on line 5

Fermé
Zeropoint - 14 mars 2018 à 00:45
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 15 mars 2018 à 12:16
Bonjour, j'ai cette erreur: Notice: Undefined variable: id in /Applications/MAMP/htdocs/index.php on line 5 dans le code suivant:

<?php

require('model/model.php');

$post = getPost($id);

echo $post;


Il se rapporte à la fonction suivante:

<?php

function getPost($id) {

    $db = dbConnect();

    try {
        $sql = 'SELECT id, title FROM general WHERE id = ?';
        $query = $db->prepare($sql);

        $query->execute(array($id));
        $return = $query->fetch();

        return $return;

    } catch(Exception $e) {
        echo 'Erreur dans la requête ' . $sql . " <br /> Erreur : ". $e->getMessage();
    }

    $idExist = !empty($return) ? true : false;
    if ($idExist) { return $return; } else { echo 'La variable n\'existe pas !'; }
}

function dbConnect() {

    try {
        $db = new PDO('mysql:host=localhost; dbname=web','root', 'root', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
        return $db;
    }

    catch(Exception $e) {
        echo 'Erreur dans la requête ' . $sql . " <br /> Erreur : ". $e->getMessage();
    }
}


(Noter que l'absence de ?> est tout à fait normale ces pages ne contenant que du php)

1 réponse

nagaD.scar Messages postés 4272 Date d'inscription samedi 8 septembre 2007 Statut Membre Dernière intervention 4 janvier 2023 251
14 mars 2018 à 15:40
Salut,


require('model/model.php');

$post = getPost($id);

echo $post;



ou est déclaré $id? dans model.php? comment est il déclaré ?

naga
0
Sakut, le $id est déclaré dans la fonction ? Ca ne suffit pas ?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > Zeropoint
15 mars 2018 à 12:16
Bonjour,

Il faut que tu initialise la variable $id pour pouvoir t'en servir dans ta fonction...
$post = getPost($id);

Dans cette ligne de code .. tu essaies d'envoyer une variable à la fonction getPost ... sauf que tu ne l'a déclarée/initialisée nul-part avant visiblement.

Une ligne de code correcte, serait par exemple :
$id = 50;
$post = getPost($id);
0