2013-07-15 37 views
-2

我有一張新聞表,我想在每一行中選擇3個最新的東西,他們被編號爲1作爲最舊的數據,我添加的每個數據都會更高。那麼,你如何獲得三件最新的東西並將它們展示在哪些地方? (對不起,我想不出如何說出我的問題)選擇SQL表中最新的數據?

編輯: 我沒有喜歡的HTML或任何東西,所以顯示所需的效果,但我可以解釋它。我有一個SQL表,有4行。 ID,TITLE,DATE和POST。這是新聞提要,我想在主頁上顯示3條最新新聞「文章」。但我不想僅將它們顯示爲列表,我想將標題放在頂部div中,在日期旁邊,我想通過主鍵(ID)對它進行排序,然後將該帖子放在div下標題和日期。下面就來告訴你一個嘗試:

 
Title | Date 
Newest news. Etc. Insert Big Paragraph of news here etc etc. 

Title | Date 
2nd Newest news. Etc. Insert Big Paragraph of news here etc etc. 

Title | Date 
3rd Newest news. Etc. Insert Big Paragraph of news here etc etc. 
+1

你分組以選擇3最新?你能否提供樣品數據和預期結果的表格結構? – user2480596

+2

將關於sql查詢的問題短語的最佳方法是根據該示例數據提供表結構,樣本數據和所需輸出。 – peterm

+0

試圖更好地說出它 – user2565624

回答

1

首先,請不要使用「日期」作爲您的字段名,可以說你把它重命名爲news_date。這個怎麼樣?

<?php 
$query = mysql_query ("SELECT * FROM yourtable ORDER BY id DESC LIMIT 3"); 
$number = 1; 
while ($result = mysql_fetch_array($query)) { 
    $id = $result['id']; 
    $title = $result['title']; 
    $news_date = $result['news_date']; 
    $post = $result['post']; 
?> 
    <div name='title'><?php echo $title; ?></div> || <div name='news_date'><?php echo $news_date; ?></div> 
    <p>News <?php echo $number; ?></p> 
    <p><?php echo $post; ?></p> 
<?php 
    $number++; 
    } 
?> 
+0

問題更新以使其更有意義。另外,ORDER BY會顯示#1,然後#2然後#3,反之亦然?我也需要知道如何迴應結果。像一個區域中的回聲#3標題,另一個區域中的#2標題,等等。我不希望它在列表中。 – user2565624

+0

我真的不明白你的問題,但我更新了我的答案。 – kayla

+0

我想我可以用它來達到所需的效果。謝謝。 – user2565624

0

如果我正確地得到你,你可以使用LIMITORDER BY

`SELECT columns FROM yourtable ORDER BY primary_key DESC LIMIT 0,2` 
+0

在這上面會得到前三個,因爲theres 0,1,2。 – user2565624

+0

我也更新了這個問題,使其更加清晰。 – user2565624

+0

O是的,你是對的..感謝您糾正我......只要提取數據,這將工作 – alwaysLearn

0

如果我對你的問題的理解是正確的,看來你有一個行標識符(編號爲1至... N)的表,你想運行一個查詢,將帶回3最近插入記錄?

如果是這樣的:

讓我們假設你有以下結構的表叫做書:

Books: 
- RowNumber 
- Col_1 
- Col_2 
- ... 

你需要做的就是運行下面的SQL什麼:

SELECT 
    TOP 3 * 
FROM 
    Books 
ORDER BY 
    RowNumber DESC 

我希望這可以幫助:)

+0

我更新了問題,使其更加清晰。 – user2565624