|
|
|
| Помогите с запросом.
<?
$sql_my = mysql_query("SELECT id FROM table WHERE id_user='$id_user'");
$my = mysql_fetch_array($sql_my);
do
{
$id_my = intval($my['id']);
$log = mysql_num_rows(mysql_query("SELECT * FROM log WHERE id_user='$id_user' AND id_my='$id_my'"));
echo $id_my.' - '.$log.'<br/>';
}
while($my = mysql_fetch_array($sql_my));
?>
|
так выводит на каждый ID свой подсчет, а вот как сделать общий подсчет всех ID? | |
|
|
|
|
|
|
|
для: Almaz
(22.08.2009 в 19:22)
| |
SELECT t.id AS my_id, COUNT(l.id_user) AS c FROM table t JOIN log l ON t.id = l.id_my WHERE t.id_user = $id_user GROUP BY t.id
|
| |
|
|
|
|
|
|
|
для: Fractured
(22.08.2009 в 19:30)
| | ой.. а можно прокементировать этот запрос? | |
|
|
|
|
|
|
|
для: Almaz
(22.08.2009 в 19:31)
| | Попробуйте самостоятельно почитать это: http://www.mysql.ru/docs/man/JOIN.html
Если кратко, то из двух таблиц извлекаются парочки (поля table, поля log) такие, что table.id = log.id_my, после происходит группировка по table.id и COUNT() выполняет свою роль агрегирующей функции. См. GROUP BY, COUNT, JOIN в интернете
Единственное, я не указал условие l.id_user = $id_user. | |
|
|
|
|
|
|
|
для: Fractured
(22.08.2009 в 19:34)
| | а нету более легких путей решения данной задачи? | |
|
|
|
|
|
|
|
для: Almaz
(22.08.2009 в 19:38)
| | а нужны? | |
|
|
|
|
|
|
|
для: Valick
(22.08.2009 в 19:42)
| | если спрашиваю, значит да. | |
|
|
|
|
|
|
|
для: Almaz
(22.08.2009 в 19:44)
| | А что это у Вас do while делает в коде... Сами писали его? Можете объяснить почему именно do while (это неправильно)? | |
|
|
|
|
|
|
|
для: Fractured
(22.08.2009 в 21:02)
| | 99% что видеокурс Евгения Попова писал... | |
|
|
|
|
|
|
|
для: Valick
(22.08.2009 в 21:41)
| | ... ? Кто писал видеокурс Евгения Попова с вероятностью 99%? Думаю, что сам Евгений Попов. | |
|
|
|