Помогите написать цикл и запрос

Статус
В этой теме нельзя размещать новые ответы.

LLlaMaH

Вот он я
Регистрация
31 Мар 2009
Сообщения
247
Реакции
320
Что-то не могу сообразить. По идее, просто, но вот... никак :)

Есть две таблицы.
Поле sid в одной таблицы (table1) = поле id в другой таблице (table2). В таблице table2 есть поле field, значения которого могут быть 0 и 1.
Как посчитать количество строк в таблице table1 только тех sid, соответствующие id из table2 которых у строк с field=1

Надеюсь, понятно написал :)
 
Код:
SELECT COUNT(*) FROM table1 WHERE
	sid IN (SELECT id FROM table2 WHERE field=1)
 
Я правильно понимаю, что
$kolichestvo = mysql_query ("SELECT COUNT(*) FROM table1 WHERE
sid IN (SELECT id FROM table2 WHERE field=1)");
поместит в переменную $kolichestvo число строк?

Или надо какую-то другую функцию использовать, вместо mysql_query?

PS Просто у меня не отработал этот запрос.
 
Не правильно.

$kolichestvo = mysql_query ("SELECT COUNT(*) FROM table1 WHERE
sid IN (SELECT id FROM table2 WHERE field=1)");

Выполняет запрос и возращается дескриптор.

Далее нужно: $col = mysql_fetch_assoc($kolichestvo) или же mysql_fetch_row или же mysql_fetch_array.

А сам запрос должен вернуть один элемент с числом, которое означает количество.
 
Warning: mysql_fetch_assoc(:( supplied argument is not a valid MySQL result resource.

Такая вот штука выходит. Может все-таки в запросе какая ошибка?
 
да вроде все верно
PHP:
<?php
    /* Соединяемся, выбираем базу данных */
    $link = mysql_connect("mysql_host", "mysql_user", "mysql_password")
        or die("Could not connect : " . mysql_error());
    print "Connected successfully";
    mysql_select_db("my_database") or die("Could not select database");

    /* Выполняем SQL-запрос */
    $query = "SELECT COUNT(*) FROM table1 WHERE
	sid IN (SELECT id FROM table2 WHERE field=1)";
    $result = mysql_query($query) or die("Query failed : " . mysql_error());
$line = mysql_fetch_array($result, MYSQL_ASSOC);
//Выврд в HTML
echo $line[0];

    /* Освобождаем память от результата */
    mysql_free_result($result);

    /* Закрываем соединение */
    mysql_close($link);
?>
вы так делаете?
 
SELECT COUNT(*) FROM table1, table2 WHERE
(table1.sid=table2.id) AND (table2.field='1':()
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху