找到一个值大于或等于给定数字的行(mysql)

时间:2017-03-07 18:27:50

标签: php mysql

我创建排名系统并且排名存储在数据库中,我的问题是找到大于或等于值的行到给定用户xp

它是这样的:

排名表中的排名列表:

名称: Rank1 exp: 400

名称: Rank2 exp: 500

名称: Rank3 exp: 700

$xp = "500";

$find = $db->query("SELECT * FROM ranks WHERE exp >= '$xp' LIMIT 1");

if($find->num_rows > 0){
 // if a rank with greater than or equal value was found
  $rdata = $find->fetch_assoc();
 // return rank name
  echo $rdata["name"];
}

这会返回 Rank1 ,我不知道为什么:(

任何人都可以帮助我吗?我还没有擅长mysql。

2 个答案:

答案 0 :(得分:1)

删除" "大约500,但为了将来的参考,我将其转换为准备好的陈述,因为您的查询并非尽可能安全

if (itemSelected == StadtArray[row]) {

另一个建议。而不是选择> = $ xp和限制为1的位置,为什么不选择您实际需要的范围?在500到700之间所以它不能带回700?

答案 1 :(得分:0)

你确实在查询中放了$xp的单引号,它可能是一个数值,而不是一个字符串。现在您可能正在将数值与字符串进行比较。 尝试:

$find = $db->query("SELECT * FROM ranks WHERE exp >= $xp LIMIT 1");