MySQL: вывод заголовков из базы в обратном порядке

Тема в разделе "SQL", создана пользователем Terabyte, 5 ноя 2003.

Статус темы:
Закрыта.
  1. Terabyte

    Terabyte Гость

    У меня есть скрипт , который выводит на экран из СКЛ базы список статей. Я хочу чтобы он их выводил не с верху (таблицы) вниз, а с низу вверх. Вот код:

    $rows_hack=mysql_num_rows(mysql_query("select * from $table");
    $result_hack=mysql_query("select name_exploit, id, date FROM $table");
    echo "<ul>\n";
    for($i=$rows_hack;$i>0;$i--) {
    mysql_data_seek($result_hack,$i);
    $array_exp=mysql_fetch_array($result_hack);
    echo "<li><b><a href=\"exploit.php?go=".$array_exp["id"]."\">".$array_exp["name_exploit"]."</a></b> <i>".$array_exp["date"]."</i></li>\n";
    };
    echo "</ul>\n\n";

    Но эта гадина =) почему то выводит ошибку:
    Warning: mysql_data_seek(): Offset 5 is invalid for MySQL result index 9 (or the query data is unbuffered) in f:\localhost\html\web-hack\exploit\index.php on line 28
    Потом выводит ссылку на первую статью, а толкьо потом все ссылки идут как я и хотел (снизу вверх). В чем проблема?

    Хм... Если использовать такой цикл:

    $i=$rows_hack;
    while ($i>0) {
    $i--;
    mysql_data_seek($result_hack,$i);
    $array_exp=mysql_fetch_array($result_hack);
    echo "<li><b><a href=\"exploit.php?go=".$array_exp["id"]."\">".$array_exp["name_exploit"]."</a></b> <i>".$array_exp["date"]."</i></li>\n";
    };

    То все ок =)
     
  2. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    замени
    mysql_data_seek($result_hack,$i);
    на
    mysql_data_seek($result_hack,$i) or die(mysql_errno() . ": " . mysql_error(). "\n");
    и посмотри что говорит.

    и цикл как

    for($i=$rows_hack-1;$i>=0;$i--)
     
  3. Sir Alex

    Sir Alex Гость

    А не проще ли и не быстрее ли:

    $result_hack=mysql_query("select name_exploit, id, date FROM $table ORDER BY ID DESC"
    while ( $array_exp=mysql_fetch_array($result_hack) )
    echo "<li><b><a href=\"exploit.php?go=".$array_exp["id"]."\">".$array_exp["name_exploit"]."</a></b> <i>".$array_exp["date"]."</i></li>\n";
    };

    З.Ы. Правда это при условии, что ID записи постоянно увеличивается (если нет, можно использовать поле "date")
     
  4. admin

    admin Well-Known Member

    Регистрация:
    8 авг 2003
    Сообщения:
    2.811
    Симпатии:
    0
    Sir Alex
    Можно и так. Вариантов много :D Главное найти наиболее оптимальный
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей