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

Форум MySQL

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

 

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

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

тема: COUNT в запросе с двумя таблицами
 
 автор: f@ntom   (21.11.2010 в 17:20)   письмо автору
 
 

Доброго времени суток =)


<?
$opinions 
mysql_query("SELECT opinions_time. *, opinions.time, COUNT(opinions.id) FROM opinions_time LEFT JOIN opinions ON opinions.pro = opinions_time.id WHERE opinions.time > opinions_time.time ");

$opinions2=mysql_result($opinions,0);
    if (
$opinions2!=0){
        echo 
$opinions2;
    }
?>


Подскажите пожалуйста как правильно запрос составить, мой не работает (((

  Ответить  
 
 автор: Trianon   (21.11.2010 в 18:17)   письмо автору
 
   для: f@ntom   (21.11.2010 в 17:20)
 

что возвратила mysql_error() ?

  Ответить  
 
 автор: f@ntom   (21.11.2010 в 18:26)   письмо автору
 
   для: Trianon   (21.11.2010 в 18:17)
 

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\index.php on line 122

122 строчка
$opinions2=mysql_result($opinions,0);

  Ответить  
 
 автор: neadekvat   (21.11.2010 в 19:49)   письмо автору
 
   для: f@ntom   (21.11.2010 в 18:26)
 

mysql_error() вставьте вот сюда:

$opinions = mysql_query("SELECT opinions_time. *, opinions.time, COUNT(opinions.id)
FROM opinions_time
LEFT JOIN opinions ON opinions.pro = opinions_time.id
WHERE opinions.time > opinions_time.time "); 

mysql_error();

$opinions2=mysql_result($opinions,0);

  Ответить  
 
 автор: f@ntom   (21.11.2010 в 19:57)   письмо автору
 
   для: neadekvat   (21.11.2010 в 19:49)
 

Вставил туда, ответ тот же что написан выше (

  Ответить  
 
 автор: f@ntom   (21.11.2010 в 19:59)   письмо автору
 
   для: neadekvat   (21.11.2010 в 19:49)
 

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in Z:\home\test1.ru\www\index.php on line 122

  Ответить  
 
 автор: Trianon   (21.11.2010 в 20:57)   письмо автору
 
   для: f@ntom   (21.11.2010 в 19:59)
 

warning - это уже вторично.
Убирайте из списка SELECT лишние поля.

Либо добавляйте их в GROUP BY , если хотите группирующий запрос.

  Ответить  
 
 автор: f@ntom   (22.11.2010 в 00:21)   письмо автору
 
   для: Trianon   (21.11.2010 в 20:57)
 

Докопался до этого, работает, но почему - то не стабильно, т.е. у одного ид работает, у другого нет...

<?
$opinions 
mysql_query("SELECT 
                            ot.id, 
                            ot.time, 
                            o.time, 
                            o.pro,
                            COUNT(o.pro)
                        FROM 
                            opinions o
                            LEFT JOIN
                                opinions_time ot
                            ON
                                ot.id = o.pro
                        WHERE 
                            o.pro = 
$id
                        GROUP BY 
                            ot.time,
                            o.time,
                            ot.id,
                            o.pro"
);
?>


И ещё не могу в WHERE добавить условие o.time > ot.time, выдаёт ошибку сразу (((

  Ответить  
 
 автор: f@ntom   (22.11.2010 в 00:58)   письмо автору
 
   для: f@ntom   (22.11.2010 в 00:21)
 


<?
$opinions 
mysql_query("SELECT ot.id, ot.time, o.time, o.pro, COUNT(o.pro)
            FROM opinions o
            LEFT JOIN opinions_time ot
            ON ot.id = o.pro
            WHERE o.pro = 
$id AND o.pro > ot.time
            GROUP BY ot.time, o.time, ot.id, o.pro"
);


$opinions2=mysql_result($opinions,0);
if (
$opinions2!=0){
    echo 
$opinions2;
}
?>


Таким макаром выдаёт ошибку Unable to jump to row 0 on MySQL result index 38.

Кажется COUNT как-то не правильно ставлю ((((

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

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