2012-02-21 53 views
2

私はこの enter image description heremysql_num_rowsの印刷方法は?

のようなデータベース構造を持ち、行は を数えるが、1だけ

コードを取得しています使用しています印刷しようとしていますが、クエリに応じ

$sql="select Count(*) from uniqueviews where hour=13"; $result=mysql_query($sql); $ml=mysql_num_rows($result); echo $ml; 

ある それは6 を印刷する必要がありますが、その印刷1

どこが間違っていますか?

私はその行を数えると思いますか?

行カウント後に結果を印刷するにはどうすればよいですか?

答えて

5

Count(*)は、行数を含む1つの行のみを返します。だから、戻り値として1しか得られないのです。

$sql="select * from uniqueviews where hour=13"; 
$result=mysql_query($sql); 
$ml=mysql_num_rows($result); 
echo $ml; 

またはこの:

$sql="select COUNT(*) from uniqueviews where hour=13"; 
$result=mysql_query($sql); 
$row = mysql_fetch_array($result, MYSQL_NUM); 
$ml=$row[0]; 
echo $ml; 
+0

+1、良いキャッチ:) – Sarfraz

0

あなたが実際にあなたのクエリはあなたが結果を数えているreturned.sinceた行の数を印刷しているあなたは、実際の値が必要な場合は、これを行うことができますいずれか代わりにmysql_fetch_arrayを使用してクエリの結果を取得する必要があります。

0
$result = select Count(*) from uniqueviews where hour=13 // $result is 6 here 

and when you use mysql_count_rows($result) it returns 1 which is correct 

try printing $result which should be 6 

またはクエリから*によってCOUNT(*)を置き換えることができ、それはあなたが何かが欠けている、正しい結果

0

を与える必要があります。

あなたはそれだけで合計が行が返され、このロジックでは、一列のみの結果は、(count(*)が行のみが返されます)完全に正しいです。my_sql_num_rows($result)が表示されますない場合

あなたはそのロジックを維持したい場合は、結果を取得する方法変更、ちょうど

SELECT * from uniqueviews where hour = 13 

か、そのSQLクエリを維持したい場合は、お使いのSQLクエリにcountを使用しないでください。

mysql_fetch_array($result, MYSQL_NUM); 
0

これを試してみてください:

$sql = "select Count(*) AS COUNT from uniqueviews where hour=13"; 
$result = mysql_query($sql); 
$count = mysql_fetch_object($result); 

echo $count->COUNT; 
0
"select Count(*) from uniqueviews where hour=13" 

これはカウントを返します。つまり、1行だけです。

あなたは

が、その後のようないくつかのことを行うクエリつまり合計数の結果を見たい場合は、この

$sql="select Count(*) from uniqueviews where hour=13"; 
$result=mysql_query($sql); 
$ml=mysql_fetch_array($result); 
echo $ml[0]; 
のみ1つのレコードが返さがあるので、あなたのクエリによって返さ
-1

ヌム行は、常に1です - その選択からの行数を記録する。

は交換してください:

$sql="select Count(*) from uniqueviews where hour=13"; 

で:

$sql="select id from uniqueviews where hour=13"; 

その後はmysql_num_rowsを使用しています。

しかしcount()によって返される値を取得する必要があります。mysql_num_rowsはこのような操作ではありません。

関連する問題