Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: if mysql_num_rows$result > 0
 
 автор: zorg84   (27.07.2011 в 21:56)   письмо автору
 
 

Когда в базе данных, нет записей выводит ошибку так-как $result равен 0 как сделать корректно чтобы код не парился пробовал else всё равно не работает

if (mysql_num_rows($result) > 0)

{

  Ответить  
 
 автор: psychomc   (27.07.2011 в 22:56)   письмо автору
 
   для: zorg84   (27.07.2011 в 21:56)
 

покажите весь код и дамп базы данных

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:11)   письмо автору
 
   для: psychomc   (27.07.2011 в 22:56)
 


<?php

 $result 
mysql_query("SELECT id,title,date,author,view FROM data WHERE cat='$cat' ORDER BY id  DESC, id DESC LIMIT $start$num",$db);



if (
mysql_num_rows($result) > 0)

{
$myrow mysql_fetch_array($result);



do 
{
printf ("<table class='post' align='center' width='836' cellspacing='0' cellpadding='8'>
      
         <tr>
         <td class='post_title' width='480' style='border-right: 1px solid #565A71; border-bottom: 1px solid #565A71'>

         <p class='post_name' align='center'><a class='zz' href='post.php?id=%s'>%s</a></p>

</td>
<td width='320' style='border-bottom: 1px solid #565A71'>

<p class='post_adds'>%s</p> 
<p class='post_adds'>%s</p></td>


</tr></table>" 
,$myrow["id"],$myrow["title"],$myrow["author"],$myrow["date"], $myrow["view"]);
}
while (
$myrow mysql_fetch_array($result));


}
?>

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:14)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:11)
 


Структура таблицы `data`
--

CREATE TABLE `data` (
  `id` int(5) NOT NULL auto_increment,
  `cat` int(1) NOT NULL,
  `meta_d` varchar(255) character set cp1251 NOT NULL,
  `meta_k` varchar(255) character set cp1251 NOT NULL,
  `description` text character set cp1251 NOT NULL,
  `text` text character set cp1251 NOT NULL,
  `view` int(7) NOT NULL,
  `author` varchar(100) character set cp1251 NOT NULL,
  `date` date NOT NULL,
  `mini_img` varchar(255) character set cp1251 NOT NULL,
  `title` varchar(255) character set cp1251 NOT NULL,
  PRIMARY KEY  (`id`),
  FULLTEXT KEY `text` (`text`)
) ENGINE=MyISAM  DEFAULT CHARSET=cp1250 AUTO_INCREMENT=155 ;

--
-- Дамп данных таблицы `data`















  Ответить  
 
 автор: Valick   (27.07.2011 в 23:26)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:11)
 

возьмите за правило нормально писать код и проверки
1) весь SQL запрос оформляейте в переменную, чтобы на этапе отладки кода легко можно было бы вывести его в браузер вот так:
$query="SELECT id,title,date,author,view FROM data WHERE cat='$cat' ORDER BY id  DESC, id DESC LIMIT $start, $num"

как только нужно проконтролировать правильность запроса допысываете echo
echo $query="SELECT id,title,date,author,view FROM data WHERE cat='$cat' ORDER BY id  DESC, id DESC LIMIT $start, $num"

2) контролируйте выполнение запроса
либо так:
$res=mysql_query($query) or die ("Error : ".mysql_error());

либо так:
$res=mysql_query($query);
if(!$res) echo "Error";

3) избавтесь от видеокурса ЕПопова и купите нормальную книгу :)
__
а запрос у вас попросту не выполняется, например поле $cat у вас числовое, а вы к нему обращаетесь строкой

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:31)   письмо автору
 
   для: Valick   (27.07.2011 в 23:26)
 

Понял выброшу :)))

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:36)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:31)
 

Так что мне исправить чтобы заработало

  Ответить  
 
 автор: Valick   (27.07.2011 в 23:38)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:36)
 

'$cat' <- убрать одинарные кавычки

  Ответить  
 
 автор: Valick   (27.07.2011 в 23:37)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:31)
 

4) используйте для обработки результата запроса оператор while вместо do {} while

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:40)   письмо автору
 
   для: Valick   (27.07.2011 в 23:37)
 

если не трудно пример выложи

  Ответить  
 
 автор: Valick   (27.07.2011 в 23:45)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:40)
 


<?php
$query
="SELECT id,title,date,author,view 
                        FROM data 
                        WHERE cat=
$cat 
                        ORDER BY id  DESC, id DESC LIMIT 
$start$num";
$result mysql_query($query) or die(mysql_error()); 

if (
mysql_num_rows($result) > 0) { 
while (
$myrow mysql_fetch_array($result)){
printf ("<table class='post' align='center' width='836' cellspacing='0' cellpadding='8'> 
       
         <tr> 
         <td class='post_title' width='480' style='border-right: 1px solid #565A71; border-bottom: 1px solid #565A71'> 

         <p class='post_name' align='center'><a class='zz' href='post.php?id=%s'>%s</a></p> 

</td> 
<td width='320' style='border-bottom: 1px solid #565A71'> 

<p class='post_adds'>%s</p>  
<p class='post_adds'>%s</p></td> 


</tr></table>" 
,$myrow["id"],$myrow["title"],$myrow["author"],$myrow["date"], $myrow["view"]); 


?> 

___
кстати почему так? ORDER BY id DESC, id DESC
скорее всего просто ORDER BY id DESC LIMIT $start, $num"

  Ответить  
 
 автор: zorg84   (27.07.2011 в 23:55)   письмо автору
 
   для: Valick   (27.07.2011 в 23:45)
 

проста постраничная навигация подключена

  Ответить  
 
 автор: Valick   (27.07.2011 в 23:58)   письмо автору
 
   для: zorg84   (27.07.2011 в 23:55)
 

и что? причем тут навигация и дважды отсортированное по одному и тому же полю?

  Ответить  
 
 автор: zorg84   (28.07.2011 в 00:01)   письмо автору
 
   для: Valick   (27.07.2011 в 23:58)
 

Я уже пределал
Браза спасибо работает

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования