Tratando de obtener la propiedad de non-object en [duplicate]
Esta pregunta ya tiene una respuesta aquí:
En la página de Control:
<?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);
?>
En la Página de la vista:
<?php foreach ($sidemenus as $sidemenu): ?>
<?php echo $sidemenu->mname."<br />";?>
<?php endforeach; ?>
El error es:
Aviso: Tratando de obtener la propiedad de non-object en C:\wamp\www\phone\pages\init.php en línea 22
¿Puedes arreglarlo? Yo no tienes idea de lo que pasó.
4 answers
Compruebe el manual para mysql_fetch_object()
. Devuelve un objeto, no una matriz de objetos.
Supongo que quieres algo como esto
$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;
}
Le sugiero que eche un vistazo a la DOP. PDOStatement::fetchAll(PDO::FETCH_OBJ)
hace lo que asumiste mysql_fetch_object()
hacer
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-05 02:13:28
Tu error
Aviso: Tratando de obtener la propiedad de non-object en C:\wamp\www\phone\pages\init.php en línea 22
Su comentario
@22 es
<?php echo $sidemenu->mname."<br />";?>
$sidemenu
no es un objeto, y usted está tratando de acceder a una de sus propiedades.
Esa es la razón de tu error.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-05 02:13:28
<?php foreach ($sidemenus->mname as $sidemenu): ?>
<?php echo $sidemenu ."<br />";?>
O
$sidemenus = mysql_fetch_array($results);
Entonces
<?php echo $sidemenu['mname']."<br />";?>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-05 02:14:46
$sidemenu
no es un object
, por lo que no puede llamar a métodos en él. Probablemente no está siendo enviado a su view
, o $sidemenus
está vacío.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-23 06:26:26