全神贯注,无法找到办法。
我想计算循环查询的结果数量。
例如......
如果我有5个口袋妖怪,其中2个是Pikachus,它会显示4个口袋妖怪,但是在皮卡丘旁边有2个,我想要计算你拥有的不同口袋妖怪的数量,不包括皮卡丘。
这是我到目前为止所做的。
<div class="reg-box3" style="width:100%; margin:5px;">
<?php
$result = mysql_query("SELECT *, COUNT(*) number FROM user_pokemon WHERE belongsto='". $_SESSION{'username'}."'AND (slot='0') GROUP BY pokemon ORDER BY pokemon");
while($row = mysql_fetch_array($result))
{
$sql2 = "SELECT * FROM pokemon WHERE name='".$row['pokemon']."'";
$result2 = mysql_query($sql2) or die(mysql_error());
$battle_get2 = mysql_fetch_array($result2);
?>
<div style="width: 24.5%; float: left;padding:.1%; ">
<?php
$idd= mysql_real_escape_string($row['id']);
$iddd = strip_tags($idd);
?>
答案 0 :(得分:1)
AS
之前,您的查询中遗漏了number
。如果添加它,所需的计数将存储在$result['number']
变量中。
顺便说一句,在这种情况下,您可能会发现mysql_num_rows()
更容易。只需在MySQL资源上调用它,它就会返回获取的行数。
修改:使用mysql_num_rows
就是这么简单:$count = mysql_num_rows($result);
答案 1 :(得分:0)
<?php
$result = mysql_query(
<<<SQL
SELECT
`t2`.`name` AS `name`,
COUNT(*) AS `count`
FROM `user_pokemon` AS `t1`
JOIN `pokemon` AS `t2` ON (`t1`.`pokemon` = `t2`.`name`)
WHERE
`t1`.`belongsto` = '{$_SESSION{'username'}}'
AND `t1`.`slot` = 0
GROUP BY `name`
ORDER BY `name`
SQL
);
while($row = mysql_fetch_array($result)){
var_dump($row);
}
?>
不保证它有效,因为我不知道你的表结构,也不确定我是否从你的查询中得到了它。
PS :不要使用mysql_num_rows()
计算记录。它需要从服务器传输数据,而如果您直接在MySQL中执行,则可以最轻松地获得最佳性能。