$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为整数,对象在中给定
我只是不太确定为什么查询的结果不是整数
发布于 2018-06-17 03:07:00
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了。
发布于 2018-06-17 03:08:33
像这样修改你的代码
$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中,希望这能起作用
发布于 2018-06-17 03:06:17
mysql_query返回一个结果,而不是一个值。
来自函数的文档:http://php.net/manual/en/mysqli.query.php
返回值
失败时返回FALSE。对于成功的SELECT、SHOW、DESCRIBE或EXPLAIN查询,mysqli_query()将返回一个mysqli_result对象。对于其他成功的查询,mysqli_query()将返回TRUE。
https://stackoverflow.com/questions/50890805
复制相似问题