试图从db php中获取一个随机数并不起作用

时间:2018-06-16 18:53:15

标签: php mysql sql mysqli

    $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为整数,对象在

中给出

我不确定为什么查询结果不是整数

3 个答案:

答案 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。