-1

count() 関数を使用して、テーブルから選択された行数をカウントしようとしています。ただし、行が選択されているすべてのクエリに対して常に「2」を返すか、行が選択されていないすべてのクエリに対して「1」を返します。

 $sql_usb="select item_name from req_item where item_name='USB Dongle'";
 $result_usb=mysql_query($sql_usb);
 $row_usb=mysql_fetch_array($result_usb);

 $sql_router="select item_name from req_item where item_name='Access Point/Router'";
 $result_router=mysql_query($sql_router);
 $row_router=mysql_fetch_array($result_router);

 $sql_laptop="select item_name from req_item where item_name='Laptop'";
 $result_laptop=mysql_query($sql_laptop);
 $row_laptop=mysql_fetch_array($result_laptop);

 $usb_inv=count($row_usb);
 $router_inv=count($row_router);
 $laptop_inv=count($row_laptop);


 $total_inv=$usb_inv+$router_inv+$laptop_inv;

isset() (つまり$usb_inv=count(isset($row_usb));) と mysql_num_rows() (つまり$usb_inv=mysql_num_rows($row_usb));)も追加しようとしました

どちらも結果は 1 になります。

4

5 に答える 5

1

使用する必要があります

SELECT COUNT(*) WHERE ....

ドキュメントを確認してください。

合計のみが必要な場合は、1 つの sql だけで十分です。

// please add error handing yourself.
$sql = "select count(*) from req_item where item_name
        where item_name in('USB Dongle', 'Access Point/Router', 'Laptop')";
$result = mysql_query($sql);
$row = mysql_fetch_array($result)
$total = $row[0];
于 2012-06-04T05:43:06.647 に答える
0

使用する必要があります

$usb_inv = mysql_num_rows($result_usb);

それ以外の

$usb_inv=count($row_usb);
于 2012-06-04T05:49:44.680 に答える
0

mysql_fetch_array は次のようなものを返しています

$row[0] = ...;
$row[item_name] = ...;


配列のカウントを使用している場合、インデックスと関連キーの両方を持つ配列を返すため、常に 2 が返されます。

配列 mysql_fetch_array ( resource $result [, int $result_type = MYSQL_BOTH ] )

mysql_fetch_array — 結果行を連想配列、数値配列、またはその両方としてフェッチする

mysql_fetch_array の間違った使用方法にもかかわらず、
おそらく単一のクエリを使用する必要があります

$sql ="select item_name from req_item 
       where item_name in('USB Dongle', 'Access Point/Router', 'Laptop')";

その後、

$count = array();
while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
  // do something else ...

  // to get count for each item name
  $count[$row["item_name"]]++;
}
于 2012-06-04T05:50:07.423 に答える
0

このようにmysqlクエリでcountを使用する必要があります

$SelectQuery = 'select Count(item_name) as [TotalUSB] from req_item where item_name='USB Dongle'

次に、次の方法で結果を取得できます

$result = mysql_query($SelectQuery);
$row = mysql_fetch_array($result);

$USBCount = $row['TotalUSB'];
于 2012-06-04T05:50:25.800 に答える
0

結果セットで mysql_num_rows を使用する必要がありました。

このような。

$usb_inv=mysql_num_rows($result_usb);
$router_inv=mysql_num_rows($result_router);
$laptop_inv=mysql_num_rows($result_laptop);

これにより、適切な出力が得られます。

于 2012-06-04T05:47:30.973 に答える