2013-07-15 2 views
-2

У меня есть таблица для новостей, и я хочу выбрать 3 новых вещи в каждой строке, они пронумерованы 1 как самая старая, и каждая добавленная мной информация будет выше. Итак, как вы получаете три новейшие вещи и показываете их в местах? (Извините, я не могу придумать, как рассказать мой вопрос)Выберите новейшие данные в таблице SQL?

EDIT: У меня нет ни 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 или наоборот? Мне также нужно знать, как эхо результата.Как заголовок echo # 3 в одной области, затем №2 в другом и т. Д. Я не хочу, чтобы это было в списке. – user2565624

+0

Я действительно не понимаю ваш вопрос, но я обновил свой ответ. – kayla

+0

Я думаю, что могу работать с этим для желаемого эффекта. Спасибо. – user2565624

0

Если я правильно получать вас вы можете использовать LIMIT и ORDER BY

Пример

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

На это было бы 0,2 получить первые три, так как theres 0,1,2. – user2565624

+0

Я также обновил вопрос, чтобы сделать его более понятным. – user2565624

+0

О да, вы правы .. Спасибо за исправление меня ... насколько выборка данных будет работать, это будет работать – alwaysLearn

0

Если мое понимание ваш вопрос правильно, это, кажется, у вас есть таблица с идентификатором строки (пронумерованных от 1 до ... п), и вы хотите, чтобы выполнить запрос, который вернет 3 самые последние вставленные записи?

Если это так:

Давайте предположим, что у вас есть таблица с именем книги с приведенной ниже структуры:

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

Что вам нужно сделать, это выполнить следующий SQL:

SELECT 
    TOP 3 * 
FROM 
    Books 
ORDER BY 
    RowNumber DESC 

I надеюсь, это поможет :)

+0

Я обновил вопрос, чтобы сделать его более понятным. – user2565624

Смежные вопросы