Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как избежать вывода пустой страници при нулевом результате запроса

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Дима
Отправлено: 22 Декабря, 2010 - 12:36:37
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Уважаемые знатоки, в базе есть 2 таблици category и produce связующее поле categoryId, запрос принимает его как параметр для вывода данных из табл. produce. Есть ситуации, когда в category этот товар есть, а в produce такого товара нет, соответственно нет и categoryId. В результате запрос возвращает пустой результат и загружается пустая страница, но мне нужно чтобы по условию вместо пустой страницы для пользователя был вывод что товар отсутствует. Что я только не перепробовал, результата нет.
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = "SELECT * FROM ".TABLE_PRODUCE." WHERE categoryId=".$prod;
  3. $q_prod = db_query($str) or die (db_error());  
  4.  while($res2 = db_fetch_array($q_prod))
  5.  {
  6.      //какой-то код по выводу данных из db
  7.      if(!isset($q_prod))
  8.      {
  9.           echo 'товара нет';
  10.       }
  11.  }
  12.  


вместо !isset($q_prod) я перебробовал целую кучу функций и условий и ничего(
 
 Top
Мелкий Супермодератор
Отправлено: 22 Декабря, 2010 - 12:49:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




PHP:
скопировать код в буфер обмена
  1. if (mysql_num_rows($query)==0) echo "нет таких";

Заменить на своё всё, что нужно.


-----
PostgreSQL DBA
 
 Top
Дима
Отправлено: 22 Декабря, 2010 - 16:22:42
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




Мелкий,
пробовал я это и mysql_num_fields и mysql_result пробовал включить строковое поле not null в условие, ничего что вывелось только входящий в запрос параметр categoryId при помощи echo.
 
 Top
RomAndry Администратор
Отправлено: 22 Декабря, 2010 - 16:42:42
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 913
Дата рег-ции: Янв. 2008  


Помог: 6 раз(а)




может проще
PHP:
скопировать код в буфер обмена
  1.  
  2. if(isset($res2['id']) AND intval($res2['id']) > 0)
  3.  

где id, это ИД товара и если его не существует значит его нет?
 
My status
 Top
Дима
Отправлено: 22 Декабря, 2010 - 17:10:17
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




RomAndry, не сработал этот код, вместо 'id' подставлял первичный ключ, внешний ключ, не работает.

(Отредактировано автором: 22 Декабря, 2010 - 17:10:54)

 
 Top
movEAX
Отправлено: 22 Декабря, 2010 - 18:01:44
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 750
Дата рег-ции: Авг. 2009  


Помог: 16 раз(а)




Посмотрите реализацию функции db_query

(Отредактировано автором: 22 Декабря, 2010 - 18:06:07)



-----
армия.. самое убогое место
 
 Top
Дима
Отправлено: 22 Декабря, 2010 - 18:24:13
Post Id


Гость


Покинул форум
Сообщений всего: 81
Дата рег-ции: Нояб. 2010  


Помог: 0 раз(а)




movEAXdb_query, db_error, db_fetch_array это пользовательские функции, работают проверено.
 
 Top
Lena_tra_ta_ta
Отправлено: 31 Октября, 2015 - 09:52:47
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Окт. 2015  


Помог: 0 раз(а)




Можно если ничего не помогает, еще проще:

Вставить перед выводом результата.
И тогда все значения Null будут замены на 0.
Или если нужно на текст
PHP:
скопировать код в буфер обмена
  1. if ($r==Null) $r='Нет товара'
 
 Top
DeepVarvar Супермодератор
Отправлено: 31 Октября, 2015 - 09:57:53
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Lena_tra_ta_ta , меня вот давно мучает насущный вопрос, а как правильно: Null, null или NULL, или может быть NuLl?
Могу вот предположить что:

null -- это значение нулл.
Null -- это важный такой, взрослый(?), серьезный(?) нулл.
NULL -- вообще полный нулл.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB