2012-08-22 61 views
1

在發佈此消息之前,我已經瀏覽了該網站,但似乎沒有任何意義。我有一個向表格提交信息的表單。 for有三個字段:$ name,$ link和$ itunes。 MySQL表有3列,我正在尋找隨機抽取名稱,鏈接和iTunes,並將其顯示在頁面上。除了提交給數據庫的表單之外,我目前沒有任何代碼。任何幫助表示讚賞。從表中隨機顯示數據

+0

所以你想匹配你從表單中獲得的所有字段,然後顯示一個匹配的隨機行? – Fluffeh

+1

你想在每次刷新時獲取一個隨機行,或者你想要全部獲取它們,並希望隨機在你的頁面上顯示而不刷新? –

+1

乾杯的答覆。 Sumit,我想每次有人刷新頁面時顯示一個隨機行。所以它會顯示$ name,$ link和$ itunes(iTunes Link) – ItsJoeTurner

回答

1

這裏是你可能會發現有用的SQL查詢:

SELECT name, link, table FROM mytable ORDER BY rand() LIMIT 1 
4
SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1; 

這會從MySQL獲取任何隨機數據。

程序的方式:

<?php 
$link = mysqli_connect("localhost", "my_user", "my_password", "world"); 

/* check connection */ 
if (mysqli_connect_errno()) { 
    printf("Connect failed: %s\n", mysqli_connect_error()); 
    exit(); 
} 

$query = "SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1"; 

if ($result = mysqli_query($link, $query)) { 

    /* fetch associative array */ 
    while ($row = mysqli_fetch_assoc($result)) { 
     printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); 
    } 

    /* free result set */ 
    mysqli_free_result($result); 
} 

/* close connection */ 
mysqli_close($link); 
?> 
+0

謝謝,這在MySQL的後端工作。我期待現在可以在使用PHP的網頁上獲取它?有任何想法嗎? – ItsJoeTurner

+0

在php中使用PDO或mysqli調用此查詢,使用fetch_assoc獲取數據並在php中顯示。 – amitchhajer

+0

在這裏和一個初學者交流...... – ItsJoeTurner

0

有了你可以使用ORDER BY蘭特該表結構(),但它的速度太慢。
如果你有一個id列,你可以得到最後一行(即SELECT ID FROM table_name ORDER BY id DESC LIMIT 1),然後用php獲得一個隨機值(rand(1,$ max)),然後使用select通過該隨機ID查詢該行。你必須運行一個檢查,確認這個ID實際存在,以防你刪除它。