RFpro.ru: Программирование на PHP

  Все выпуски  

RFpro.ru: Программирование на PHP


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Matrix
Статус: 3-й класс
Рейтинг: 388
∙ повысить рейтинг »
Волков Алексей
Статус: 5-й класс
Рейтинг: 135
∙ повысить рейтинг »
Товарищ Бородин
Статус: Академик
Рейтинг: 119
∙ повысить рейтинг »

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Номер выпуска:1157
Дата выхода:06.09.2009, 20:05
Администратор рассылки:Товарищ Бородин, Академик
Подписчиков / экспертов:615 / 175
Вопросов / ответов:1 / 5
IRC-канал по теме:#php

Вопрос № 171805: Здравствуйте! У меня есть кусочек кода примерно следующего вида:

Код:
   
Вопрос № 171805:

Здравствуйте! У меня есть кусочек кода примерно следующего вида:

Код:
$result = mysql_query("SELECT id,name FROM table ORDER BY id DESC limit 15");
$myrow = mysql_fetch_array($result);
do
{echo"$myrow[name], $myrow[id]";
}
while($myrow = mysql_fetch_array($result));


То есть я выбираю определенную информацию из базы, и вывожу ее.
Но вообще, вывести мне надо не так, как в коде, а в обратном порядке - и я не знаю как это реализовать.
Я пробовал использовать функцию array_revense к массиву $myrow ($myrow = array_revense($myrow)), но результат вывода не изменился.
Подскажите, пожалуйста, как это сделать. Подозреваю, что это на самом деле очень легко, но я пока очень слаб в php и в поисковиках ник ак не могу найти.

Отправлен: 01.09.2009, 20:04
Вопрос задал: Kasitan, Посетитель
Всего ответов: 5
Страница вопроса »


Отвечает Прим Палвер, 9-й класс :
Здравствуйте, Kasitan.

Можно изменить первую строку:

$result = mysql_query("SELECT id,name FROM table ORDER BY id limit 15");

т.е. убираете "desc". Это она переворачивает последовательность.
-----
Блаженны прыгающие, ибо допрыгаются

Ответ отправил: Прим Палвер, 9-й класс
Ответ отправлен: 01.09.2009, 20:20

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253770 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Паутов Сегей Владимирович, 2-й класс :
    Здравствуйте, Kasitan.

    Впринципе можно и сам массив перевернуть вверх ногами, но для этого его нужно получить весь, а именно:

    $result = mysql_query("SELECT id,name FROM table ORDER BY id DESC limit 15"); // Оставляем как есть

    // формируем массив
    $myArray = array();
    while ($myrow = mysql_fetch_array($result))
    {
    $myArray[] = $myrow;
    }

    // Переворачиваем массив
    $myArray2 = array_reverse($myArray);

    //Собственно выводим что получилось

    foreach ($myArray2 as $v)
    {
    echo"$v[name], $v[id]";
    }

    вроде должно заработать :)

    Ответ отправил: Паутов Сегей Владимирович, 2-й класс
    Ответ отправлен: 01.09.2009, 22:22

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253776 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Зернов Александр, 1-й класс :
    Здравствуйте, Kasitan!
    ORDER BY id DESC сортирует результирующий набор данных по полю ID
    Вместо DESC вставьте ASC.

    Ответ отправил: Зернов Александр, 1-й класс
    Ответ отправлен: 02.09.2009, 08:52

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253783 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает Калеев Владимир Викторович, 4-й класс :
    Здравствуйте, Kasitan.
    Может быть проще изменить SQL запос на SELECT id,name FROM table ORDER BY id ASC limit 15

    Ответ отправил: Калеев Владимир Викторович, 4-й класс
    Ответ отправлен: 02.09.2009, 11:09

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253789 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!
    Отвечает PVS@Lviv, Профессионал :
    Здравствуйте, Kasitan.
    Все действительно просто. Нужно просто не сразу выводить, а сформировать нужную последовательность:

    $result = mysql_query("SELECT id,name FROM table ORDER BY id DESC limit 15");
    $myrow = mysql_fetch_array($result);
    $out='';
    do
    {$out="$myrow[name], $myrow[id]".$out;
    }
    while($myrow = mysql_fetch_array($result));
    echo $out;

    Ответ отправил: PVS@Lviv, Профессионал
    Ответ отправлен: 02.09.2009, 17:35

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 253792 на номер 1151 (Россия) | Еще номера »
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Оценить выпуск »
    Нам очень важно Ваше мнение об этом выпуске рассылки!

    Задать вопрос экспертам этой рассылки »

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров »

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.8 от 28.08.2009

    В избранное