Попытка получить свойство не-объекта в
на странице управления:
<?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);
?>
на странице просмотра:
<?php foreach ($sidemenus as $sidemenu): ?>
<?php echo $sidemenu->mname."<br />";?>
<?php endforeach; ?>
Ошибка:
Примечание. Попытка получить свойство не-объекта в C:\wamp\www\phone\pages\init.php в строке 22
Вы можете это исправить? Я не знаю, что произошло.
Ответы
Ответ 1
Проверьте руководство для mysql_fetch_object()
. Он возвращает объект, а не массив объектов.
Я предполагаю, что вы хотите что-то вроде этого
$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;
}
Могу я предложить вам взглянуть на PDO. PDOStatement::fetchAll(PDO::FETCH_OBJ)
делает то, что вы предположили mysql_fetch_object()
для выполнения
Ответ 2
Ваша ошибка
Примечание. Попытка получить свойство не-объекта в C:\wamp\www\phone\pages\init.php в строке 22
Ваш комментарий
@22 <?php echo $sidemenu->mname."<br />";?>
$sidemenu
не является объектом, и вы пытаетесь получить доступ к одному из его свойств.
В этом причина вашей ошибки.
Ответ 3
$sidemenu не является объектом, поэтому вы не можете вызывать методы на нем. Вероятно, он не отправляется на ваш взгляд, или $sidemenus пуст.
Ответ 4
<?php foreach ($sidemenus->mname as $sidemenu): ?>
<?php echo $sidemenu ."<br />";?>
или
$sidemenus = mysql_fetch_array($results);
затем
<?php echo $sidemenu['mname']."<br />";?>