簡體   English   中英

如何從查詢結果中僅選擇1行? 像第四排

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM