ERREUR Notice: Undefined variable: id... on line 5 [Fermé]

Signaler
-
Messages postés
29573
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2020
-
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

Messages postés
4242
Date d'inscription
samedi 8 septembre 2007
Statut
Membre
Dernière intervention
29 août 2018
190
Salut,


require('model/model.php');

$post = getPost($id);

echo $post;



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

naga
Sakut, le $id est déclaré dans la fonction ? Ca ne suffit pas ?
Messages postés
29573
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 septembre 2020
2 788 > Zeropoint
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);