#php #arrays #function #codeigniter
#php #массивы #функция #codeigniter
Вопрос:
У меня есть страница, на которой я хотел бы показать данные из базы данных.
Я могу print_r($sale)
, и это показывает данные, которые я ищу — $ sale установлен в контроллере, но, похоже, я не могу этого сделать <?php $sale['name'] ?>
, он ничего не показывает.
Print_r:
Array ( [0] => stdClass Object ( [id] => 48 [name] => Jess McKenzie [location] => Auckland [bedrooms] => 5 [bathrooms] => 1 [condition] => Fair [description] =>
hii
[price] => 30.00000 [imagename] => purple.jpg [thumbname] => purple_thumb.jpg ) [1] => stdClass Object ( [id] => 49 [name] => jzmwebdevelopment [location] => Auckland [bedrooms] => 15 [bathrooms] => 4 [condition] => OK [description] =>
zebra
[price] => 25.00000 [imagename] => Zebra.jpg [thumbname] => Zebra_thumb.jpg ) )
Модель:
function getSalesContent($id = NULL) {
$this->db->where('id', $id);
$query = $this->db->get('sales', 1);
if($query->num_rows() > 0) {
$row = $query->result_array();
return $row;
}else{
return FALSE;
} # End IF
} # End getSalesContent
Комментарии:
1. не могли бы вы опубликовать результат print_r (продажа за $)?
Ответ №1:
Он возвращает массив объектов.
Чтобы показать первый возвращенный элемент, вы бы использовали
$sale[0]->name;
Для циклического перебора всех значений вы могли бы использовать цикл foreach
foreach($sale as $s){
print $s->name;
}
Ответ №2:
$query->result_array()
возвращает массив массивов, который вы бы использовали $sale['name']
в цикле foreach.
$query->result()
возвращает массив объектов стандартного класса, которые вы бы использовали $sale->name
в цикле foreach.
Кажется, я не могу выполнить $ sale-> name, он ничего не показывает.
Откройте свой index.php
файл и добавьте error_reporting(E_ALL)
в начало. Если бы вы сообщали об ошибках, вы могли бы увидеть свои ошибки с помощью полезных сообщений об ошибках, в которых точно указано, что пошло не так. Просто установите для него значение 0
, когда вы перейдете в режим реального времени.
Я пробовал
<?php $sale['name'] ?>
и ничего не получаю
Вам нужен echo
оператор: <?php echo $sale['name'] ?>
Если $sale
это опубликованный вами вывод, <?php echo $sale[0]->name ?>
следует распечатать Jess McKenzie
Комментарии:
1. @Wesley Это дает мне белую страницу
2. @Jess: Тогда я понятия не имею. Я предполагаю, что у вас, вероятно, просто много ошибок. Вам следует изучить некоторые базовые методы отладки.