$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为整数,对象在
中给出
我不确定为什么查询结果不是整数
答案 0 :(得分:2)
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了。
答案 1 :(得分:1)
像这样更改您的代码
$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 希望这会起作用
答案 2 :(得分:0)
mysql_query返回结果 - 而不是值。
从功能文档:http://php.net/manual/en/mysqli.query.php
返回值
失败时返回FALSE。成功的SELECT,SHOW,DESCRIBE或 EXPLAIN查询mysqli_query()将返回一个mysqli_result对象。对于 其他成功的查询mysqli_query()将返回TRUE。