0

私は2つのテーブルを持っています:

programmes[id,name,..]
notes[id,note,id_prgm,..]

実際に、prgm と関連するメモに関する情報を知りたいというリクエストがあります。

SELECT p.id, p.name, ...
FROM programmes p
    LEFT OUTER JOIN notes n
    ON (n.id_prgm=p.id AND ...)
WHERE ...
GROUP BY p.id
ORDER BY ...
LIMIT 20

そして、それはうまく機能しますが、今、このクエリが(LIMITなしで)私に与えることができる行の数を知りたいので、COUNT(p.id)を入れようとしますが、各プログラムのメモの数を教えてくれます。そして、プログラムの全数ではありません。

それで、誰がこのクエリを編集してそれを知ることができますか?

(mysql と php)

4

4 に答える 4

0

PHP に行をカウントさせることができます。

これが私がそれを行う方法です:

$sql = "<your-query>";
$resource = mysql_query($sql);

if (! $resource = mysql_query($sql) ){
    echo "Error reading from table $table";
    die;
}

if (! $num = mysql_num_rows($resource ) ){
    echo "No records found in $table";
}
else {
    echo "$num rows found";
    while($row = mysql_fetch_assoc($resource)){
        //...
        // other stuff you want to do
    }
}

注: 私はmysql_関数を使用していますが、同様の方法がmysqli_.

于 2013-04-22T19:07:10.463 に答える
0

クエリを実行した直後に実行する必要があるだけで、見つかった行の数がすべて返さphpれますmysqlSQL_CALC_FOUND_ROWSlimitSELECT FOUND_ROWS()

$query = 'SELECT SQL_CALC_FOUND_ROWS  p.id, p.name, ...
FROM programmes p
LEFT OUTER JOIN notes n
ON (n.id_prgm=p.id AND ...)
WHERE ...
GROUP BY p.id
ORDER BY ...
LIMIT 20';
mysql_query($query);
$query = 'SELECT FOUND_ROWS()';
mysql_query($query);
于 2013-04-22T18:59:46.763 に答える