Salut tout le monde, bon je cherche depuis hier soir j'ai passé la nuit dessus mais là je galère grave les amis.

L'erreur : (ok j'ai compris que cetait pas un objet mais on fait comment alors ??)

Notice: Trying to get property of non-object in C:\xampp\htdocs\admin\inc\functions.php on line 14

Notice: Trying to get property of non-object in C:\xampp\htdocs\admin\inc\functions.php on line 20

Ma fonction:

function new_album($name){  
    $pdo = new PDO('mysql:dbname=ldj;host=localhost', 'root', '');
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ);
    $req = $pdo->query('SELECT * FROM albums WHERE name="'.$name.'"');
    $data = $req->fetch();
    if ($data->name != null) {
        echo '<div class="alert alert-danger alert-dismissible" role="alert">
                    <button type="button" class="close" data-dismiss="alert"><span aria-hidden="true">×</span><span class="sr-only">Close</span></button>
                    <strong>Doh!</strong> Il y a déja un album avec ce nom. 
              </div>';
    }
    elseif ($data->name == null) {
        $req = $pdo->prepare("INSERT INTO albums SET name = ?, folder = ?");
        $folder = 'gallerie/'.$name.'';
        $req->execute([$name, $folder]);
        mkdir('gallerie/'.$name.'',1715);
        debug($data);
    }
}

2 réponses


JacobDelcroix
Réponse acceptée

C'est juste une notice donc pas très important en soit. Cependant as-tu fait un var_dump() de $data ? Pour voir ce que contient réellement la variable.
Car si l'album n'existe pas alors $data doit être vide, donc le premier test serait plûtot if(isset($data->name) && $data->name != null) et après juste un else suffit, pas besoin de elseif normalement.

Merci pour cette réponse Jacob :)