我尝试使用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的结果。
答案 0 :(得分:1)
你应该使用
SELECT COUNT(*) WHERE ....
检查doc。
如果你只需要总数,那么只有1个s就足够了。
// 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];
答案 1 :(得分: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);
这将为您提供正确的输出。
答案 2 :(得分:0)
你应该使用
$usb_inv = mysql_num_rows($result_usb);
而不是
$usb_inv=count($row_usb);
答案 3 :(得分:0)
mysql_fetch_array返回类似
的内容$row[0] = ...;
$row[item_name] = ...;
如果您正在使用数组的计数,它将始终返回两个,
因为它返回一个包含索引和关键密钥的数组。
数组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"]]++;
}
答案 4 :(得分: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'];