Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从1000到2000 php mysql_Php_Mysql_Random - Fatal编程技术网

从1000到2000 php mysql

从1000到2000 php mysql,php,mysql,random,Php,Mysql,Random,我试图运行一个mysql查询,它从一个排名从5000到15000的表中选择所有用户。这两个变量已被放入变量中。让我把它转换成代码,它会解释得更好 $user_rank = 10000 //this is actually a $row[''] pulled from a database $rank_above = $user_rank + 5000; $rank_below = $user_rank - 5000; $fetch_users = mysql_query("SELECT * F

我试图运行一个mysql查询,它从一个排名从5000到15000的表中选择所有用户。这两个变量已被放入变量中。让我把它转换成代码,它会解释得更好

$user_rank = 10000 //this is actually a $row[''] pulled from a database
$rank_above = $user_rank + 5000;
$rank_below = $user_rank - 5000;

$fetch_users = mysql_query("SELECT * FROM users WHERE rank = '$rank_below' ?to? '$rank_above'");
但是,我还希望将结果设置为LIMIT 1 random结果,以便它只从users表中选择一个随机用户。我这样做对吗? 非常感谢您的帮助,谢谢

您可以在mysql中使用该子句

$sql = "SELECT * FROM users WHERE rank BETWEEN  5000 AND 15000"
例如:

$sql = "SELECT * FROM users WHERE rank BETWEEN %d AND %d"
$sql = sprintf($sql,(int)$rank_above,(int)$rank_below); // sanitize user input
试试这个:

SELECT * FROM users
WHERE rank BETWEEN $rank_below AND $rank_above
ORDER BY RAND()
LIMIT 1;

不要使用字符串插值来构建SQL字符串。因此,不要使用
mysql
模块。曾经包括遗留代码。(至少要使用mysqli模块。)是的,我一直在看,它是过时的还是存在安全问题和跨浏览器的错误功能?安全问题。字符串连接/插值是结束SQL注入孔的最简单方法。避免这些问题的最好方法是使用预先准备好的查询和参数替换,而mysql根本不具备这些功能。(虽然
mysqli
使用)当使用
mysql
使用
mysql\u real\u escape\u string
时,可以避免SQL注入,但在我看来,一致地应用参数绑定要比用该函数包装所有用户输入更容易。(后者看起来也很可怕。)因为额外的参数绑定还负责为您引用字符串(或不引用非字符串参数)?在“$upvar”和“$downvar”之间,假设变量中包含int字符串?你们中的一位知道这是否比
中的rank>=5000和rank@VVV更有效吗请记住,MySQL操作符介于。。而且。。。相当于表达式(min@pebbo这两个值在SQL引擎中的计算方式极不可能有任何不同。除非在XHmm中使用
时,表达式是变量?我在添加另一个AND子句以确保登录的用户不是随机选择的时遇到了一些问题。啊,我想你不能要求更精确的结果了!