Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как реализовать вывод ошибки в случае отсутствия новостей?

Как реализовать вывод ошибки в случае отсутствия новостей?


     05.03.2017    Все вопросы » Общие вопросы по PHP    353

вопрос
Здравствуйте! Имеется небольшой хак, позволяющий фильтровать новости по значению доп поля. Все работает без каких-либо проблем, однако, хотелось бы его немного допилить. В частности, когда нет новостей удовлетворяющих критериям выводит пустота, а хотелось бы вывести сообщение об ошибке.

Не знаком с PHP, однако предполагаю, что нужно создать проверку по данным строчкам:

	$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where} ORDER BY {$news_sort_by} {$news_direction_by} LIMIT " . $cstart . "," . $config['news_number'];
	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$where}";


Пытался создать условие если $sql_count=0, то сообщение об ошибке, однако, данное сообщение выдавалось, даже когда новости были найдены. Не могли бы Вы подсказать, как верно реализовать данное решение?

Ответа пока нет


3 комментария

vitnet
Эксперт

vitnet - 5 марта 2017 14:34 -

	....
	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$where}";

....

	$count_all = $db->super_query($sql_count);

	if( intval($count_all['count']) < 1 ) {
		die("News not found!");
	}

Crashlabs
Юзер

Crashlabs - 5 марта 2017 14:46 -

Спасибо огромное, все работает!

Kane
Юзер

Kane - 5 марта 2017 23:49 -

Лучше так:
....
	$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post where {$where}";

....

	$count_all = $db->super_query($sql_count);

	if( intval($count_all['count']) < 1 ) {
		@header( "HTTP/1.0 404 Not Found" );
		msgbox( $lang['all_err_1'], $lang['news_err_12'] );
	}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх