Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Trying to get property of non-object in [duplicate]

on Control page:

<?php   include 'pages/db.php';    $results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);   $sidemenus = mysql_fetch_object($results); ?> 

on View Page:

<?php foreach ($sidemenus as $sidemenu): ?>   <?php echo $sidemenu->mname."<br />";?> <?php endforeach; ?> 

Error is:

Notice: Trying to get property of non-object in C:\wamp\www\phone\pages\init.php on line 22

Can you fix it? I don't have any idea what happened.

like image 882
Gereltod Avatar asked May 05 '11 02:05

Gereltod


2 Answers

Check the manual for mysql_fetch_object(). It returns an object, not an array of objects.

I'm guessing you want something like this

$results = mysql_query("SELECT * FROM sidemenu WHERE `menu_id`='".$menu."' ORDER BY `id` ASC LIMIT 1", $con);  $sidemenus = array(); while ($sidemenu = mysql_fetch_object($results)) {     $sidemenus[] = $sidemenu; } 

Might I suggest you have a look at PDO. PDOStatement::fetchAll(PDO::FETCH_OBJ) does what you assumed mysql_fetch_object() to do

like image 129
Phil Avatar answered Oct 13 '22 01:10

Phil


Your error

Notice: Trying to get property of non-object in C:\wamp\www\phone\pages\init.php on line 22

Your comment

@22 is <?php echo $sidemenu->mname."<br />";?>

$sidemenu is not an object, and you are trying to access one of its properties.

That is the reason for your error.

like image 44
alex Avatar answered Oct 13 '22 01:10

alex