[英]Trying to get a random number from db php doesn't work
$total_numMIN = mysqli_query($con,"SELECT MIN(id) FROM view_rating");
$total_numMAX = mysqli_query($con,"SELECT MAX(id) FROM view_rating");
$random_no = mt_rand($total_numMIN, $total_numMAX);
print $random_no;
我正在尝试从数据库中的最小和最大数字中随机生成一个数字。 现在我得到的错误是
警告:mt_rand()期望参数1为整数,对象在
我不是很确定为什么查询的结果不是整数
mysqli_query()
返回mysqli_result
,它是一个对象,而不是您期望的数字。 您需要从查询中获取结果数组。 MIN和MAX查询也可以组合成一个查询。
$result = mysqli_query($con,"SELECT MIN(id) as min, MAX(id) as max FROM view_rating");
if($result) {
$resultArray = $result->fetch_assoc();
$random_no = mt_rand($resultArray['min'], $resultArray['max']);
print $random_no;
}
可能有一种更清洁的方法来执行此操作。 我已经很长时间没有使用PHP了。
像这样改变你的代码
$total_numMIN = mysqli_fetch_assoc(mysqli_query($con,"SELECT MIN(id) as min,MAX(id) as max FROM view_rating"));
$random_no = mt_rand($total_numMIN['min'], $total_numMAX['max']);
print $random_no;
因为mysqli_query只是给你一个对象。 您必须以关联数组的形式获取数据,然后可以将其用于mt_rand,希望这样可以工作
mysql_query返回结果-而不是值。
从函数的文档中: http : //php.net/manual/zh/mysqli.query.php
返回值
失败时返回FALSE。 对于成功的SELECT,SHOW,DESCRIBE或EXPLAIN查询,mysqli_query()将返回mysqli_result对象。 对于其他成功的查询,mysqli_query()将返回TRUE。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.