2

結果は常に1です。

$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_total = mysql_num_rows($res);

phpMyAdminで$sqlクエリを実行すると、3が返されるため、クエリは問題になりません。$vote_totalはグローバルに0に初期化されるため、1はどこかから来ています。私を簡単にするために、他にどのような情報を提供する必要がありますか?

ありがとう、ライアン

4

4 に答える 4

10

mysql_num_rows特定の行のフィールドではなく、選択された行の数を返します。mysql_fetch_rowクエリで選択した行をフェッチするために使用します。

$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$row = mysql_fetch_row($res);
$vote_total = $row[0];

mysql_result行をフェッチして特定のフィールドを取得するために使用することもできます。

$vote_total = mysql_result($res, 0, 0);

これにより、最初の行(ゼロベース)がフェッチされ、最初のフィールド(ゼロベース)が返されます。

于 2010-09-22T19:15:31.497 に答える
2

行は1つだけになります。そして、その行には投票数が表示されます。

$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$vote_array = mysql_fetch_array($res);
$vote_total = $vote_array[0];

で投票数をカウントする場合はmysql_num_rows、すべての行を選択する必要があります。

于 2010-09-22T19:15:46.420 に答える
2

そのクエリは1行だけを返します。必要なのは、クエリからを取得することです。

$row = mysql_fetch_array($res);
$vote_total = $row[0];
于 2010-09-22T19:17:41.673 に答える
1

トリッキーな部分は、SQLクエリにCOUNT()ステートメントが含まれている場合でも、他のクエリ結果と同じようにクエリ結果であるということです。MySQLは、通常のクエリを発行した場合に返されるはずの行数を含む単一の列を含む行を返します。一方、mysql_num_rows()は、実際に実行されたクエリの結果の行数をカウントするだけです。この場合、それは常に単一の行です。

あなたが欲しいものは:

$sql = 'SELECT COUNT(Vote) FROM ' . $table;
$res = mysql_query($sql, $conn);
$data = mysql_fetch_row($res);
$vote_total = $data[0];
于 2010-09-22T19:16:20.933 に答える