我有以下查询:
$lsel_lijst = mysql_query("SELECT * FROM users WHERE (owner = $id AND extern = 0 ) OR ( extern = $id )");
这给了我一个完整的用户列表,其中owner = $ id或者extern = $ id。 在此查询之后,我想指定此列表中的许多组。 等级= 10,等级= 20,等级= 30直到2000 并将它们放在正确的div框中(方框10,方框20,方框30等)。
而不是这样做:
$lsel_lijst = mysql_query("SELECT * FROM users WHERE level = 10 AND (owner = $id AND extern = 0 ) OR ( extern = $id )");
$lsel_lijst = mysql_query("SELECT * FROM users WHERE level = 20 AND (owner = $id AND extern = 0 ) OR ( extern = $id )");
$lsel_lijst = mysql_query("SELECT * FROM users WHERE level = 30 AND (owner = $id AND extern = 0 ) OR ( extern = $id )");
等。 我的问题是我可以再次进行查询,如上所述,之后选择吗?
答案 0 :(得分:0)
使用“in”子句:
$lsel_lijst = mysql_query("SELECT * FROM users WHERE level in(10,20,30) AND (owner = $id AND extern = 0 ) OR ( extern = $id )");
答案 1 :(得分:0)
$lsel_lijst = mysql_query("SELECT * FROM users WHERE (level > 9 OR level < 31) AND (owner = $id AND extern = 0 ) OR ( extern = $id )");
答案 2 :(得分:0)
您可以尝试使用
$levels = array(10,20,30,40,50,60); //and goes one
$lsel_lijst = mysql_query("SELECT * FROM users WHERE level IN (".implode(',', $levels).") AND (owner = $id AND extern = 0 ) OR ( extern = $id )")
每个SQL squery都必须符合批量大小限制,即65,536 *网络数据包大小(大约250MB)。有关最大查询大小的更多信息,请访问Limit on the WHERE col IN (...) condition
答案 3 :(得分:0)
选择所有内容,然后使用级别参数创建div。
if ($lsel_lijst) {
while($row = mysql_fetch_array($lsel_lijst)) {
<!-- write your div code here <div className="divLevelnumber" -->
}
}
else {
echo mysql_error();
}
答案 4 :(得分:0)
while ($row = mysql_fetch_assoc($lsel_lijst))
$list[$row['level']][] = $row;
通过这种方式,您将拥有一个数组($ list),其中包含许多由其级别标识的子数组:
$list = array(
1 => array(level1 entries...),
2 => array(level2 entries...)
);
注意,如果有一个空组(例如没有级别1),$ list数组的索引值为null($ list [1] = null)
并且,停止使用&#34; mysql&#34;一组函数,而不是(如果可能的话)使用mysqli或PDO。使用已弃用的扩展程序很糟糕,非常糟糕。
编辑:看你的评论
是的,我已经使用了循环,但那就是斯洛文,网站上有超过100人在线。
提醒关系数据库将始终返回&#34;表&#34; (结果集)作为结果。没有实际的方法可以使它返回数组或不同的结构。这就是fetch函数存在的原因,它们在语言结构中转换结果(结果集,行集)(如数组:mysql_fetch_array(),mysql_fetch_assoc()。或者作为对象mysql_fetch_object())。