我想知道是否有人可以帮我解决这个小问题。
我想从数据库中选择一些数字不超过设定数字的东西。
这就是我所拥有的(片段):
$Level = "1"; //Retrieved from the DB, just keeping it simple.
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <='users.Level'");
问题在于,它不会显示任何等于$ level的内容。
(项目......等级:0) - 显示 (项目......等级:1) - 不显示。
所以我想要的是相当于php的!&gt; 1(不超过1),但如果可能的话,采用MYSQL格式,但这不起作用。
答案 0 :(得分:1)
你应该记住'不超过'总是与'低于和等于'相同,所以你应该使用field <= value
。 (所以在你的情况下:field <= 1
。)
答案 1 :(得分:1)
我假设Level是表用户的一个字段,如果是,那么你在查询中有一个引用问题,并用PHP var查询,试试:
$Query = @mysql_query("SELECT * FROM users,store WHERE users.ID = '{$ID}' AND store.LevelReq <= {$Level}");
答案 2 :(得分:0)
表和列分别进行转义,而不是'users.Level',请尝试user.'level'。 (TABLE.COLUMN)
$Level = "1"; //Retrieved from the DB, just keeping it simple.
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <= users.'Level'");
答案 3 :(得分:0)
您正在将store.LevelReq与字符串“users.Level”进行比较,而不是列users.Level。删除users.Level周围的引号,一切都应该好!
答案 4 :(得分:0)
你确定不应该使用反引号而不是单引号吗?像这样:
$Level = "1"; //Retrieved from the DB, just keeping it simple.
@$Query = mysql_query("SELECT * FROM users,store WHERE users.ID = '$ID' AND store.LevelReq <=`users`.`Level`");