繁体   English   中英

尝试从db php获取随机数不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM