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

Форум PHP

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

 

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

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

тема: подсчёт строк в базе
 
 автор: myestro   (22.01.2011 в 17:53)   письмо автору
 
 

Здравствуйте.
Что-то я не понимаю почему не работает как надо.
Это проверка писем в базе
если хоть одно письмо есть, строка меню горит красным. Если писем нет ,а ответ - каунт говорит , что их 0, тоже почему-то красным светится.



    if($users->checkLogin() == true)

        { 
            
    
    




            $arrx = mysql_query("SELECT COUNT(*) as `total` FROM `inbox` WHERE `uid2` = '".$users->getCurUid()."' AND `status` = '0'");
if(mysql_num_rows($arrx)>=1){   /*".$Count[0]."*/
  $Count=mysql_fetch_row($arrx);
  echo " <li><a href=\"?pID=7\" ><img src=\"ico16/account.png\" >&nbsp; <font color=#D60731><b> Minu konto</a>".$Count[0]." </b></font>";        
}
else
{
 echo "  <li><a href=\"?pID=7\" ><img src=\"ico16/account.png\" >&nbsp;  Minu konto</a> ";        
}

        }



  Ответить  
 
 автор: The Electronic Cat   (22.01.2011 в 19:01)   письмо автору
 
   для: myestro   (22.01.2011 в 17:53)
 

Вы же выбираете не все строки по условию, а одну строку с полем - результатом функции count(). То есть эта строка будет в результирующем наборе в любом случае, пусть и с содержимым 0.

Вроде того:

<?php
 
list($arrx) = mysql_fetch_row(mysql_query("SELECT COUNT(*) as `total` FROM `inbox` WHERE `uid2` = '".$users->getCurUid()."' AND `status` = '0'"));

  Ответить  
 
 автор: Trianon   (22.01.2011 в 19:54)   письмо автору
 
   для: myestro   (22.01.2011 в 17:53)
 

Добавлю.
Чтобы понять, почему так происходит, попробуйте выполнить этот запрос в phpMyAdmin (или любом другом БД-клиенте)

  Ответить  
 
 автор: myestro   (22.01.2011 в 22:45)   письмо автору
 
   для: Trianon   (22.01.2011 в 19:54)
 

Да. проверил в phpmyadmin. каунт выдаёт одну строку со значением 0. А вот как правильно я уже не могу собразить....Подскажите что поменять чтобы если статус 0 у писем не найден, то и писем значит 0

Спасибо

  Ответить  
 
 автор: Trianon   (22.01.2011 в 23:03)   письмо автору
 
   для: myestro   (22.01.2011 в 22:45)
 

>Да. проверил в phpmyadmin. каунт выдаёт одну строку со значением 0.
Именно. Выдает одну строку.

Вы же функцией mysql_num_rows() количество выданных строк.
Не надо этого делать. Нужно сразу брать значение поля в этой строке.
В нем и будет ноль.

>А вот как правильно я уже не могу собразить....Подскажите что поменять чтобы если статус 0 у писем не найден, то и писем значит 0

Э нет. с письмами разбирайтесь сами.

  Ответить  
 
 автор: myestro   (22.01.2011 в 23:07)   письмо автору
 
   для: Trianon   (22.01.2011 в 23:03)
 

Поясните скроку
>Э нет. с письмами разбирайтесь сами.

Не понял

  Ответить  
 
 автор: Trianon   (22.01.2011 в 23:13)   письмо автору
 
   для: myestro   (22.01.2011 в 23:07)
 

>>>Подскажите что поменять чтобы если статус 0 у писем не найден, то и писем значит 0

>Поясните скроку
>>Э нет. с письмами разбирайтесь сами.
>Не понял

Что именно?

  Ответить  
 
 автор: myestro   (22.01.2011 в 23:23)   письмо автору
 
   для: Trianon   (22.01.2011 в 23:13)
 

Почему вы так отреагировали на письма?

  Ответить  
 
 автор: myestro   (22.01.2011 в 23:32)   письмо автору
 
   для: myestro   (22.01.2011 в 23:23)
 

я пробовал без подсчёта


        $arrx = mysql_query("SELECT COUNT(*) as `total` FROM `inbox` WHERE `uid2` = '".$users->getCurUid()."' AND `status` = '0'");

if($arrx)>=1{ 



тогда получаю

Parse error: syntax error, unexpected T_IS_GREATER_OR_EQUAL in /home

  Ответить  
 
 автор: myestro   (23.01.2011 в 00:32)   письмо автору
 
   для: myestro   (22.01.2011 в 23:32)
 

разобрался. всем спасибо тема закрыта

  Ответить  
 
 автор: Trianon   (23.01.2011 в 12:59)   письмо автору
 
   для: myestro   (23.01.2011 в 00:32)
 

Вы забыли написать, как вышли из положения.

  Ответить  
 
 автор: myestro   (23.01.2011 в 13:10)   письмо автору
 
   для: Trianon   (23.01.2011 в 12:59)
 

вот так:


<?



    
if($users->checkLogin() == true)

        { 
            
    
    




            
$arrx mysql_query("SELECT COUNT(*) as `total` FROM `inbox` WHERE `uid2` = '".$users->getCurUid()."' AND `status` = '0'");
 
$Count=MySQL_Fetch_Array($arrx);

if((
".$Count[0].")>0) { 
 
  echo 
" <li><a href=\"?pID=7\" ><img src=\"ico16/account.png\" >&nbsp; <font color=#D60731><b> Minu konto </a> </b></font>";        
}
else
{
 echo 
"  <li><a href=\"?pID=7\" ><img src=\"ico16/account.png\" >&nbsp;  Minu konto</a> ";        
}

        } else {   echo 
"  <li><a href=\"?pID=7\" ><img src=\"ico16/account.png\" >&nbsp;  Minu konto</a> ";    }


?>

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

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