Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обратное считывание MySQL запроса 
:(
    Опции темы
InfMag
Дата 24.12.2005, 23:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Вот я пишу отображение новостей, но мне нужно, чтобы последняя новость была сверху, предпослядняя второй и т.д. Но я не понимаю, что прийдется тут изменить, чтобы это получить:
Код

$res = mysql_query("SELECT * FROM `news` LIMIT ".($from-1).",".$to);
while ($news=mysql_fetch_array($res))
{
   //...
}

Переменные $from и $to - это указатели от постраничной разбивки.
У меня только получилось это сделать с циклом for, но это такая муторная операция была + запросом приходилось вытаскивать всю базу без лимита. smile
PM   Вверх
Mal Hack
Дата 24.12.2005, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



ORDER BY - сортировка.
DESC - убывание, ASC - возрастание
http://dev.mysql.com/doc/refman/4.1/en/select.html
PM ICQ   Вверх
InfMag
Дата 25.12.2005, 00:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Вот к примеру так:
Код

$res = mysql_query("SELECT * FROM `news` LIMIT 0,30");
while ($news=mysql_fetch_array($res))
{
   //...
}

У меня ничего не получилось с этим ORDER BY, всяко разно пробовал, я его синтаксис понять не могу. smile
Добавлено @ 00:23
И вобще, когда у меня сортировка обратная будет мне писатЬ: LIMIT 30,0?
PM   Вверх
Mal Hack
Дата 25.12.2005, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



Цитата(InfMag @ 25.12.2005, 00:22)
И вобще, когда у меня сортировка обратная будет мне писатЬ: LIMIT 30,0?

Нет.
Цитата(InfMag @ 25.12.2005, 00:22)
У меня ничего не получилось с этим ORDER BY, всяко разно пробовал, я его синтаксис понять не могу. smile

Как пробовал?
PM ICQ   Вверх
InfMag
Дата 25.12.2005, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Код

SELECT * FROM `news` ORDER BY * LIMIT 10;
SELECT * FROM `news` ORDER BY DESC;
SELECT * FROM `news` ORDER BY ASK;
SELECT * FROM `news` ORDER BY `news`;

Добавлено @ 00:35
Всмысле не ASK, а ASC, но это не столь важно.
Добавлено @ 00:35
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DESC' at line 1
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in z:\home\atlas\www\mysql\index.php on line 145
Добавлено @ 00:36
$res = mysql_query("SELECT * FROM `news` ORDER BY DESC");
PM   Вверх
Mal Hack
Дата 25.12.2005, 00:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 11
Всего: 261



InfMag
Синтаксис:
ORDER BY <имя поля> <ASC или DESC> [ , <имя поля> <ASC или DESC> ]
PM ICQ   Вверх
InfMag
Дата 25.12.2005, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Mal Hack Сенкс! Заработало smile
Код

SELECT * FROM `news` ORDER BY `id` DESC

PM   Вверх
InfMag
Дата 25.12.2005, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


…
***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

Репутация: нет
Всего: 4



Ну вот и мои творения, со всем разобрался! smile
Код

<?php
            $maxmess = 10;
            $maxpages = 25;
            $res = mysql_query("SELECT * FROM `news`");
            $lines = mysql_num_rows($res);
            if (isset($_GET['page'])) $page = $_GET['page']; else $page = 1;
            if ($page<=0) $page = 1;
            $pages = (int)(($lines+$maxmess-1)/$maxmess);
            $from = ($page-1)*$maxmess;
            if ($from<0) $from = 0;
            $lnks = "Страницы: /";
            for ($i=1; $i<=$pages; $i++)
            {
                if ($i<=$maxpages)
                if ($i==$page) $lnks .= " <b>$i</b> /"; else $lnks .= " <a href=\"?s=news&page=$i\">$i</a> /";
            }
            $lnks = "<p align=\"center\">$lnks</p>";
            if ($pages==1) $lnks = "";
            echo $lnks;
            
            $res = mysql_query("SELECT * FROM `news` ORDER BY `id` DESC LIMIT ".$from.",".$maxmess);
            while ($news=mysql_fetch_array($res))
            {
?>
<table border="0" cellpadding="3" cellspacing="1" align="center" bgcolor="#A2D092" width="700">
<tr bgcolor="#D6EDCE">
    <td style="font-size:10px"><?=$news['date']?><?php if (!empty($news['theme'])) echo " <b>&laquo;".$news['theme']."&raquo;</b>" ?></td>
</tr>
<tr bgcolor="#E2F4DC">
    <td><?=cut($news['small_text'])?><?php if (!empty($news['full_text'])) { ?><br><a href="?s=viewnews&id=<?=$news['id']?>">Подробнее</a><?php } ?><br><br><?=$news['id']?></td>
</tr>
<tr bgcolor="#D6EDCE">
    <td align="right" style="font-size:10px">С уважением, <?php if (!empty($news['email'])) echo "<a href=\"mailto:".$news['email']."\">" ?><b><?=$news['author']?></b><?php if (!empty($news['email'])) echo "</a>" ?></td>
</tr>
</table><?php if ($i>0) echo "<br>" ?>


Это сообщение отредактировал(а) InfMag - 25.12.2005, 01:07
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.0470 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.