IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Веб-программирование (http://www.imho.ws/forumdisplay.php?f=29)
-   -   Вывод новостей.SQL!Постраничный вывод на экран с базы данных MySQL (http://www.imho.ws/showthread.php?t=55279)

KittenCom 31.03.2004 11:47

Вывод новостей.SQL!Постраничный вывод на экран с базы данных MySQL
 
Вот взялась делать поэкранный вывод новостей с базы MySQL даже не знаю с чего начать.....видимо может чего почитать надо а может кто совет дельный даст про SQL и вывод на экран..
Просто я пишу извраты на php я и сейчас могу его написать :) но думаю может чего по проще посоветуюете?:)

Merlin Cori 31.03.2004 12:09

KittenCom
а в чем разница полноэкранного и неполноэкранного:confused:

KittenCom 31.03.2004 12:12

НАверное я не корректно вопрос задала. Короче в базе 20 новостей...а я хочу с последним айди выводить по 5 как запрос написать что бы оно знало с какого по какой, откидывая все остальное??

Merlin Cori 31.03.2004 12:19

выводишь в цикле, выбираешь сортированными ORDER BY поле ASC (это от a до z) или DESC (это в обратном порядке)

medved2002 31.03.2004 12:34

ORDER BY айди DESC LIMIT 0, 5

Vaulter 31.03.2004 12:54

$start вычисляешь исходя из страницы которую надо вывести
PHP код:

$start=5*($page-1);
ORDER BY date DESC LIMIT $start,


Goryn 31.03.2004 18:39

А вот еще интересный вопрос: как определить количество страниц, если заранее не известно количество выводимых новостей (например в результате поиска).

Самое простое, это сделать сначала запрос с аналогичным условием, но с COUNT() и, естественно, без LIMIT.

Но это же громоздко. Может, кто подскажет более красивое решение.

medved2002 31.03.2004 18:45

Смотря какая версия Мускула
FOUND_ROWS()
FOUND_ROWS() по русски

KittenCom 01.04.2004 11:17

Goryn А может надо сделать просто поле id ?порядковый номер?:)автоинкремент?По-моему самый лучший вариант.

medved2002 01.04.2004 11:43

А если запись удалили? Автоинкримент не пересчитается

KittenCom 01.04.2004 12:22

ну тогда может insert надо сделать?в боле id?

medved2002 01.04.2004 12:29

Чего?

KittenCom 01.04.2004 13:20

medved2002
написать скрипт для того что бы в поле 'ID' была вставленна нумерация

INSERT INTO tbl_name (ID) VALUES($c);
$c=1+$c;
по-моему так и запусти выполнение этого запроса в цикле...

medved2002 01.04.2004 13:26

Это будет глупо. Потому что
1 - тебе придется перелопачивать всю таблицу каждый раз когда кто либо удалит запись.
2 - В СУБД нет такого понятия 1, вторая ... последняя запись в таблице

KittenCom 01.04.2004 13:29

зачем каждый раз тебе придется перелопачивать всю таблицу каждый раз когда кто либо удалит запись?
один раз выполнится этот скриптик....а потом при добавлении записи...будит и инеремент срабатывать.
я не аз в php & MySQL пишу в основном извраты. так что возможно и ошибаюсь

medved2002 01.04.2004 13:40

Обьясняю на пальцах

У тебя таблица:
1 Вася
2 Петя
3 Сергей
4 Коля

Удаляем Петю, получаем

1 Вася
3 Сергей
4 Коля

Порядок нарушен? Нарушен для того что бы его востановить потребуется перелопатить всю таблицу

KittenCom 01.04.2004 13:45

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

medved2002 01.04.2004 14:08

Я уже написал что перелопачивать при удалении записе всю таблицу глупо, ладно у тебя там 3 записи, а если три миллиона?

Hubbitus 01.04.2004 14:17

IMHO, SELECT SQL_CALC_FOUND_ROWS - самый правильный и самый БЫСТРЫЙ способ, вот только проблема что он поддерживается в MySQL начиная с версии 4.0...


Часовой пояс GMT +4, время: 07:02.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.