2012-05-10 6 views
1

私は異なる地域の漁業を含むデータベースを持っています。私は以下のコマンドを使用しています:条件に合致するエントリの総数を取得する

$sql ="SELECT region FROM table WHERE region='Fife'"; 
    $res = mysql_query($sql) or die(mysql_error()); 
    while($row = mysql_fetch_assoc($res)){ 
     $total = array ($sql); 
     echo count($total); 

これは私に出力として(111111111111111)を与えます。しかし、私は代わりに(15)を返すように探しています。現在、「ファイフ」と一致する唯一の15の腸があります

希望の結果を得るためにコードをどのように改善できますか?

+0

1の数はいくらですか? '$ total = array($ sql)'を実行しているので、$ totalは常に要素が1つしかない配列です。$ sql – urraka

+0

は15分の1を取得します。ただ1のすべての代わりに15と言ってほしい –

答えて

0
$sql ="SELECT region FROM table WHERE region='Fife'"; 
    $res = mysql_query($sql) or die(mysql_error()); 
$total = array(); 
while($row = mysql_fetch_assoc($res)){ 
$total[] = array ($sql); 
} 
echo count($total); 

あなたは、レコードに

+0

あなたは間違っている。 '$ total [] = $ row ['region'];' – urraka

+0

@PerroAzul正しく動作したと思われるコメントを追加してくれてありがとう。 –

4

使用MySQLのcount()

$sql ="SELECT count(*) AS total FROM table WHERE region='Fife'"; 
$res = mysql_query($sql) or die(mysql_error()); 
$row = mysql_fetch_assoc($res); 
echo $row['total']; 
+0

これはちょうど私に値を与えない? –

+0

最後の行で '$ row ['total']'にする必要があります。 – urraka

+0

正しい。私の一部にミスタイプ。 –

0

を維持したい場合はあなたが実際にはるかに高速であるSQLでのカウントを行うことができます。

$sql ="SELECT COUNT (*) FROM table WHERE region='Fife'"; 
$c = mysql_query($sql) or die(mysql_error()); 
print $c; 
関連する問題