ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
Михаил, по вашему уроку создаю движок. Но при выводе статей на главной странице почему-то ничего не выводится, точнее выводится только пустой блок, но один, а не три, как должно быть, вот все связанное с этим:
protected function getBlogArticles($articles, $page) {
$count = $this->config->count_blog;
$start = ($page - 1) * $count;
$end = (count($articles) > $start + $count)? $start + $count: count($articles);
for($i = $start; $i < $end; $i++) {
$sr["title"] = $articles[$i]["title"];
$sr["intro_text"] = $articles[$i]["intro_text"];
$sr["date"] = $this->formatDate($articles[$i]["date"]);
$sr["link_article"] = $this->config->address."?view=article&id=".$articles[$i]["id"];
$text .= $this->getReplaceTemplate($sr, "article_intro"
}
return $text;
}
protected function formatDate($time) {
return date("d-m-Y в H-i", $time);
}
protected function getMiddle() {
return $this->getBlogArticles($this->articles, $this->page);
}
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
http://myrusakov.ru/php-start.html - если ничего не выводится, в том числе, и ошибок.
ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
Михаил, а функция getBlogArticles правильная у меня?
ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
А у кого есть исходный код всех классов до главной страницы (включительно), можете дать?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Напишите мне на e-mail
[email protected]
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
лучше всего искать ошибку самому) да потратишь время, зато поймешь)
а самый классный метод последовательно смотреть что происходит с помощью echo и print_r
ilyadenisovid
Мастер
Дата регистрации:
28.01.2013 18:32:29
Сообщений: 213
Дело в том, что бывают ошибке, к примеру, вместо echo, Вы написали echio, а так я понесколку раз все выводил
LLIMATKO
Эксперт
Дата регистрации:
12.02.2013 15:31:03
Сообщений: 129
ну такие ошибки ищутся внимательностью и правильностью прочтения, что вам пишет браузер
konkore
Новичок
Дата регистрации:
12.11.2015 12:26:20
Сообщений: 1
Добрый день. У меня аналогичная ошибка, на странице запущенной в браузере ( Open Server 5.2.2) из блога статьи, выводится только дата и ссылка подробнее, для ОДНОЙ ЯКОБЫ СТАТЬИ и та ведет на http://mysite/?view=article&id= , то-есть значение id не передаётся. Ниже метод getBlogArticles
protected function getBlogArticles($articles, $page) {
$start = ($page - 1) * $this->config->count_blog;
$end = (count($articles) > $start + $this->config->count_blog ? $start + $this->config->count_blog : count($articles));
for ($i=$start; $i < $end; $i++) {
$sr["title"] = $articles[$i]["title"];
$sr["intro_text"] = $articles[$i]["intro_text"];
$sr["date"] = $this->formatDate($articles[$i]["date"]);
$sr["link_article"] = $this->config->address."?view=article&id=".$articles[$i]["id"];
$text .= $this->getReplaceTemplate($sr, "article_intro" ;
}
return $text;
}
protected function formatDate($time) {
return date("Y-m-d H:i:s", $time);
}
При проверке print_r($sr);
выводится
Array(
[title] =>
[intro_text] =>
[date] => 2015-11-12 15:55:02,
[link_article] => http://MySite?view=article&id=
)
Как я понимаю. не передаются значения в $sr["title"] = $articles[$i]["title"]; и $sr["intro_text"] = $articles[$i]["intro_text"]; и здесь $sr["link_article"] = $this->config->address."?view=article&id=".$articles[$i]["id"]; тоже, что-то не так, но почему не могу понять
Сегодня 13.11.2015 убрал передаваемые параметры функции getAll("date", false) оставив :
public function getAllSortDate() {
return $this->getAll();
}
получил вывод статей.
Что-то не так с передаваемым параметром "date", а вот что ???
Нашёл ошибку: в строке if (!$up) $order = "DESC"; неправильно записал оператор присваивания типа ( $a .= $b $a = $a . $b ) точнее банально пропустил точку, когда списывал ))) должно быть if (!$up) $order .= "DESC";
private function select($table_name, $fields, $where = "", $order = "", $up = true, $limit = "" {
for ($i=0; $i < count($fields); $i++) {
if ((strpos($fields[i], "(" === false) && ($fields[$i] != "*") $fields[$i] = "`".$fields[$i]."`";
}
$fields = implode(",", $fields);
$table_name = $this->config->db_prefix.$table_name;
if (!$order) $order = "ORDER BY `id`";
else {
if ($order != "RAND()" {
$order = "ORDER BY `$order`";
if (!$up) $order .= "DESC";
}
else $order = "ORDER BY $order";
}
if ($limit) $limit = "LIMIT $limit";
if ($where) $query = "SELECT $fields FROM $table_name WHERE $where $order $limit";
else $query = "SELECT $fields FROM $table_name $order $limit";
$result_set = $this->query($query);
if (!$result_set) return false;
$i = 0;
while ($row = $result_set->fetch_assoc()) {
$data[$i] = $row;
$i++;
}
$result_set->close();
return $data;
}