Я использую построитель запросов PHP, MySQL и CodeIgniter. Я пытаюсь повторить все комментарии к новости. Текущая версия ниже наиболее близка к рабочей. Он дает мне самый ранний комментарий четыре раза. Когда я захожу в модель и меняю по возрастанию на убыль, я получаю последний комментарий четыре раза.
Просмотр
Да, я понимаю, что мне следует повторить строку, вот так.
Но это дает мне «недопустимое смещение строки» как для имени, так и для текста, четыре раза для каждого, что, по-видимому, предполагает, что $row содержит строку, а не массив. Я понятия не имею, почему он все еще пытается повторить один и тот же комментарий четыре раза. Их всегда четыре, независимо от того, сколько комментариев на самом деле у меня в базе данных.
Контроллер
public function view($slug)
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['news_item'] = $this->news_model->get_news($slug);
$data['comments'] = $this->news_model->get_news_comments($slug);
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('text', 'text', 'required');
if (empty($data['news_item']))
{
show_404();
}
$data['title'] = $data['news_item']['title'];
$slug = $data['news_item']['slug'];
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/rowter');
}
else
{
$this->news_model->set_news_comment($slug);
$this->load->view('news/success');
}
}
Модель
public function get_news_comments($slug)
{
$this->db->order_by("id", "asc");
$query = $this->db->get_where('news_comments', array('news' => $slug));
return $query->row_array();
}
Если вы знаете, что я делаю неправильно, помогите мне. Кроме того, я хотел бы знать, почему что-то идет не так, и почему одна и та же строка повторяется четыре раза.
While/foreach Loops, возвращающий четыре одной и той же строки
, несколько похоже, но не помогло.
ОБНОВЛЕНИЕ 1:
print_r($comments); дает я
Array ( [id] => 7 [name] => Mos Def [text] => And you call yourselves intellectuals [news] => tribe )
var_dump($comments); дает мне
array (size=4)
'id' => string '7' (length=1)
'name' => string 'Mos Def' (length=7)
'text' => string 'And you call yourselves intellectuals' (length=37)
'news' => string 'tribe' (length=5)
Это объясняет, почему одна и та же строка повторяется четыре раза, но я все еще не понимаю, как включить массив со всеми соответствующими комментариями, а не только один. У меня такое ощущение, что проблема в моей модели. Начну изучать дальше.
var_dump($row);
string 'tribe' (length=5)
Подробнее здесь: https://stackoverflow.com/questions/259 ... an-one-row
CodeIgniter row_array() никогда не выдает более одной строки [дубликат] ⇐ Php
Кемеровские программисты php общаются здесь
1764242022
Anonymous
Я использую построитель запросов PHP, MySQL и CodeIgniter. Я пытаюсь повторить все комментарии к новости. Текущая версия ниже наиболее близка к рабочей. Он дает мне самый ранний комментарий четыре раза. Когда я захожу в модель и меняю по возрастанию на убыль, я получаю последний комментарий четыре раза.
[b]Просмотр[/b]
Да, я понимаю, что мне следует повторить строку, вот так.
Но это дает мне «недопустимое смещение строки» как для имени, так и для текста, четыре раза для каждого, что, по-видимому, предполагает, что $row содержит строку, а не массив. Я понятия не имею, почему он все еще пытается повторить один и тот же комментарий четыре раза. Их всегда четыре, независимо от того, сколько комментариев на самом деле у меня в базе данных.
[b]Контроллер[/b]
public function view($slug)
{
$this->load->helper('form');
$this->load->library('form_validation');
$data['news_item'] = $this->news_model->get_news($slug);
$data['comments'] = $this->news_model->get_news_comments($slug);
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('text', 'text', 'required');
if (empty($data['news_item']))
{
show_404();
}
$data['title'] = $data['news_item']['title'];
$slug = $data['news_item']['slug'];
if ($this->form_validation->run() === FALSE)
{
$this->load->view('templates/header', $data);
$this->load->view('news/view', $data);
$this->load->view('templates/rowter');
}
else
{
$this->news_model->set_news_comment($slug);
$this->load->view('news/success');
}
}
[b]Модель[/b]
public function get_news_comments($slug)
{
$this->db->order_by("id", "asc");
$query = $this->db->get_where('news_comments', array('news' => $slug));
return $query->row_array();
}
Если вы знаете, что я делаю неправильно, помогите мне. Кроме того, я хотел бы знать, почему что-то идет не так, и почему одна и та же строка повторяется четыре раза.
While/foreach Loops, возвращающий четыре одной и той же строки
, несколько похоже, но не помогло.
[b]ОБНОВЛЕНИЕ 1:[/b]
[b]print_r($comments);[/b] дает я
Array ( [id] => 7 [name] => Mos Def [text] => And you call yourselves intellectuals [news] => tribe )
[b]var_dump($comments);[/b] дает мне
array (size=4)
'id' => string '7' (length=1)
'name' => string 'Mos Def' (length=7)
'text' => string 'And you call yourselves intellectuals' (length=37)
'news' => string 'tribe' (length=5)
Это объясняет, почему одна и та же строка повторяется четыре раза, но я все еще не понимаю, как включить массив со всеми соответствующими комментариями, а не только один. У меня такое ощущение, что проблема в моей модели. Начну изучать дальше.
[b]var_dump($row);[/b]
string 'tribe' (length=5)
Подробнее здесь: [url]https://stackoverflow.com/questions/25900633/codeigniters-row-array-never-gives-more-than-one-row[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия