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