domingo, 8 de diciembre de 2013

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

This question already has an answer here:
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.
share|improve this question

 
$sidemenu is not an object. var_dump() it and see what it is. –  alex May 5 '11 at 2:08
 
#22 is <?php echo $sidemenu->mname."<br />";?> –  Gerelt Od May 5 '11 at 2:11
 
You should check your mysql query is not erroring. $menu might be an empty string. That would cause your $sidemenu to not be an object. –  Chris Henry May 5 '11 at 2:13
 
Query working well and returning datas. –  Gerelt Od May 5 '11 at 2:14
1  
thanks for clarifying –  Phil May 5 '11 at 2:14
add comment

marked as duplicate by tereško, Danack, andrewsi, Jim, Macduff Oct 15 at 8:42

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

4 Answers

up vote 12 down vote accepted
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
share|improve this answer

 
I really appreciate your help. Now it's working well. –  Gerelt Od May 5 '11 at 2:20
add comment

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.
share|improve this answer

add comment
$sidemenu is not an object, so you can't call methods on it. It is probably not being sent to your view, or $sidemenus is empty.
share|improve this answer

 
isn't mysql_fetch_object returns set of objects? –  Gerelt Od May 5 '11 at 2:12
4  
@Gerelt No, I suggest you check the manual again. –  Phil May 5 '11 at 2:15
add comment

<?php foreach ($sidemenus->mname as $sidemenu): ?>
<?php echo $sidemenu ."<br />";?>
or
$sidemenus = mysql_fetch_array($results);
then
<?php echo $sidemenu['mname']."<br />";?>

No hay comentarios:

Publicar un comentario