Не удается распечатать данные в «view»

#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: Тогда я понятия не имею. Я предполагаю, что у вас, вероятно, просто много ошибок. Вам следует изучить некоторые базовые методы отладки.