查询帮助(Sql和PHP)

时间:2014-03-12 13:54:08

标签: php mysql sql

我有以下查询:

$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 )");

等。 我的问题是我可以再次进行查询,如上所述,之后选择吗?

5 个答案:

答案 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())。