首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试从db php获取随机数不起作用

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

Stack Overflow用户
提问于 2018-06-17 02:53:15
回答 3查看 36关注 0票数 2
代码语言:javascript
复制
    $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为整数,对象在中给定

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-06-17 03:07:00

mysqli_query()返回一个mysqli_result,它是一个对象,而不是您期望的数字。您需要从查询中获取结果数组。MIN和MAX查询也可以组合成一个查询。

代码语言:javascript
复制
$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了。

票数 2
EN

Stack Overflow用户

发布于 2018-06-17 03:08:33

像这样修改你的代码

代码语言:javascript
复制
$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中,希望这能起作用

票数 1
EN

Stack Overflow用户

发布于 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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50890805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档