[英]How to select only 1 row from a query result? like the 4th row
我有此代碼,並希望在我的網站上創建一個“報價區域”。 我希望它每次都從數據庫中選擇3個隨機引號。 我知道函數rand(min,max)
,但是如何使用它從查詢中選擇確切的行呢?
require 'DB.php';
$link = mysql_connect('localhost', 'root', '430123');
$db = mysql_select_db('bakery', $link);
$result = mysql_query('SELECT * FROM quotes');
我可以使用for循環,並使用mysql_fetch_row()
獲取rand()
的數字,但這可能效率不高嗎?
要僅獲取第4行,請使用limit offset, number_of_records
SELECT * FROM quotes
order by rand()
limit 3, 1
好吧,您可以選擇所有引號,然后使用array_rand()函數選擇隨機引號
您可以使用ORDER BY rand()。
例如。
$result = mysql_query('SELECT * FROM quotes ORDER BY rand() limit 3');
這是一個返回給定源數組的$ count元素數組的函數。 您必須增加對避免重復引號的支持,但這可以滿足您的要求。
<?php
require 'DB.php';
$link = mysql_connect('localhost', 'root', '430123');
$db = mysql_select_db('bakery', $link);
$result = mysql_query('SELECT * FROM quotes');
$row = mysql_fetch_array($result);
get_quotes($row,3);
function get_quotes($source,$count) {
$quotes = array();
for ($i = 0;$i<$count;$i++) {
$seed = rand(0,sizeof($source)-1);
$quotes[] = $source[$seed];
}
return $quotes;
}
也許在查詢中這樣做會更好,但是我認為這不是您要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.