Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.08.2010, 16:58   #1
Андрейкин
Новичок
Джуниор
 
Регистрация: 28.08.2010
Сообщений: 3
По умолчанию Вывод новых сообщений цикла с верху.

Помогите пожалуйста, нужно создать простенькую ленту новостей, так чтоб новые сообщения добавлялись с верху.

вот что у меня получилось, все работает, но новые сообщения добавляются снизу, как реализовать добавления с верху?


PHP код:
<?  
$result 
mysql_query("SELECT date,name,text FROM news ");
$myrow mysql_fetch_array($result);

do {
printf (" <table class='news'>
          <tr >
          <td class='news_uper'><p class='news_margin'> Автор: %s   Добавлено: %s</p></td>
          </tr>
          <tr>
          <td valign='top'><p class='news_margin_text'> %s</p></td>
          </tr>
        </table><br /> "
$myrow["name"],$myrow["date"],$myrow["text"]);
        
} while (
$myrow mysql_fetch_array($result));

 
?>

Последний раз редактировалось Андрейкин; 28.08.2010 в 17:12.
Андрейкин вне форума Ответить с цитированием
Старый 28.08.2010, 17:59   #2
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Если у вас в таблице news есть идентификаторы у каждой записи(id) - а их желательно иметь,то можно так:
PHP код:
$result mysql_query("SELECT date,name,text FROM news ORDER BY `id` DESC"); 
Если идентификаторов нет - но поле `date` имеет тип DATETIME (т.е. хранит дату_и_время добавления новости) - то отсортировать можно по этому полю:
PHP код:
$result mysql_query("SELECT date,name,text FROM news ORDER BY `date` DESC"); 
Если же у вас в таблице нет идентификаторов,и поле `date` содержит только дату(но не точное время) - то вам желательно ввести идентификатор - добавить в таблицу поле `id` с типом INTEGER, и установить для него параметр auto_increment.
примерно так:
PHP код:
mysql_query('ALTER TABLE `news` ADD `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST'); 
Andkorol вне форума Ответить с цитированием
Старый 28.08.2010, 18:08   #3
Андрейкин
Новичок
Джуниор
 
Регистрация: 28.08.2010
Сообщений: 3
По умолчанию

Большое спасибо Andkorol , воспользовался первым вариантом по id , теперь все правильно отображается!
Андрейкин вне форума Ответить с цитированием
Старый 28.08.2010, 18:23   #4
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

Ещё совет - привыкайте не вопринимать положительный результат запроса как должное - учитывайте вероятность,что ожидаемый вами результат может и не случиться(по разным причинам)...
Как в таком случае поведёт себя ваш код?
PHP код:
$result mysql_query("SELECT date,name,text FROM news ");
if(
mysql_num_rows($result) > 0){
    while(
$myrow mysql_fetch_array($result)){
        
printf (" <table class='news'>
          <tr >
          <td class='news_uper'><p class='news_margin'> Автор: %s   Добавлено: %s</p></td>
          </tr>
          <tr>
          <td valign='top'><p class='news_margin_text'> %s</p></td>
          </tr>
          </table><br /> "
$myrow["name"],$myrow["date"],$myrow["text"]);
    }

Andkorol вне форума Ответить с цитированием
Старый 28.08.2010, 19:14   #5
Андрейкин
Новичок
Джуниор
 
Регистрация: 28.08.2010
Сообщений: 3
По умолчанию

Последнее сообщение выводиться сверху?
Андрейкин вне форума Ответить с цитированием
Старый 28.08.2010, 19:23   #6
Andkorol
Старожил
 
Регистрация: 31.05.2010
Сообщений: 3,301
По умолчанию

нет - это я ваш пример поправил...
порядок вывода сделайте как я описал.
PHP код:
$result mysql_query("SELECT date,name,text FROM news ORDER BY `id` DESC"); 
Andkorol вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод сообщений\уведомлений\ошибок на экран Pirotexnik Общие вопросы C/C++ 8 03.06.2010 10:39
вывод сообщений из Unit2 в Unit1 ListBox1 fize Помощь студентам 4 12.12.2009 17:35
Как организовать вывод сообщений программой в VCL режиме Delphi? Evgenii Помощь студентам 10 28.07.2008 11:28
Вывод сообщений в Билдере Lanist Общие вопросы C/C++ 1 21.07.2008 10:05