Forum Webscript.Ru
Программирование => PHP => Тема начата: Shamandeffer от 12 Июня 2003, 02:05:29
-
:cool:
Хочу реализовать постраничный вывод из базы данных.
Т.е. если SELECT нашёл 25 строки, а я вывожу по 10 строк.
Как лучше сделать - временая таблица в MySQL или...
Может где-нибудь есть похожая реализация для примера?
А то у меня что-то долго не получается...
:cool:
-
Shamandeffer
почитай статьи на самом сайте webscript.ru
и по форуму поищи, было.
но временные таблицы совсем не для этого. Это делается через LIMIT что ли...
-
Xander:
Это делается через LIMIT что ли
Именно так
Shamandeffer:
временая таблица
Лисапед не изобретай
SELECT ... FROM ... LIMIT $startValue, $RecordsOnPage
-
а чтобы знать сколько у тебя всего записаей
SELECT COUNT(*)
-
nagash
SELECT COUNT(1) работает быстрее
-
ThE0ReTiC, неа ;)
Они работают оба одинаково, т.к. для таблиц MyISAM берут готовое значение, а не считают.
-
а чтобы знать сколько у тебя всего записаей
SELECT COUNT(*)
А я узнаю количество записей с помощью mysql_num_rows - это не правильно?!
-
SELECT * FROM tab LIMIT 0,20 - для него mysql_num_rows вернет 20 (или меньше, если записей меньше 20) потому как ты получишь первые 20 записей, а в таблице их может быть больше.
Чтобы узнать сколько всего записей в таблице
SELECT COUNT(*) FROM tab
-
Xander:
Это делается через LIMIT что ли
ThE0ReTiC
Именно так
А где это в мануале (там должны быть примеры).
В статьях я не нашёл. (тяжело в учении - легко в бою).
-
тут:
http://www.mysql.com/doc/en/SELECT.html
-
Я сделал вот, что (и вроде работает):
SELECT ... FROM ... ORDER BY ... LIMIT $Mes_count, $Mes_limit,
где $Mes_count - начальная старока (изменяется простым умножением на переменную $page(по-умолчанию равной 0, и изменяющейся на 1);
$Mes_limit - cоответственно количество выводимых строк.
Это информация для тех кто интересуется или ищет (будет искать) ответ на такой же вопрос.
Но хотел бы уточнить - Где надо использовать СOUNT(*)?
-
fidget:
Они работают оба одинаково, т.к. для таблиц MyISAM берут готовое значение, а не считают.
постраничный вывод редко обходится без where
а в этом случае готове значение взять неоткуда.
Shamandeffer
количество всех записей тебе понадобится в том случае, если ты хочешь вывести ссылки на все страницы.
еще тебе понадобится команда PHP ceil, которая округляет в большую сторону
-
Shamandeffer:
Где надо использовать СOUNT(*)?
ну если тебе надо узнать общее кол-во строк в таблице :)
SELECT COUNT(*) FROM table
-
Ещё несколько слов о SELECT CUONT(*) From table....
Я пишу:
$All_Mes=mysql_query(" SELECTCOUNT(*) FROM $Table WHERE... ");
но
echo $All_Mes; выдаёт мне Resource id #17
Не могу понять как получить число?
-
$All_Mes=mysql_query(" SELECT COUNT(*) FROM $Table WHERE... ");
$row = mysql_fetch_row($All_Mes);
echo $row[0];
-
число получить точно так же, как и любые дроугие данные.
почему-то, когда ты получаешь строку, ты не обращаешься к результату mysql_query, а когда хочешь оно поле - то сразу тебе это захотелось.
А логика где?
-
RomikChef
Логика в том, что человек мог юзать database abstraction layer с функцией query_first и немного запутаться :)
-
.RomikChef
число получить точно так же, как и любые дроугие данные.
почему-то, когда ты получаешь строку, ты не обращаешься к результату mysql_query, а когда хочешь оно поле - то сразу тебе это захотелось.
А логика где?
Для получения строки я использую mysql_fetch_array.
Я просто не знал кокую функцию конкретно надо применять
-
ту же самую.
И потом, не знать, какую и заведомо неправильную - это разные вещи.
Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки.
-
Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки.
Я отличаюсь от ЭТОГО мужа тем что перед тем как купить водки я перепробывал все сорта хлеба и мучных изделий. А когда узнал, что водку делают их зерна, то решил что и она может подойти.
А вообще, я заглядываю на этот форум для того чтобы пообщаться с людьми в целях самообразования, а не для того чтобы зря тратить своё время.
RomikChef
А за ceil спасибо.
-
Да, я уже вижу, что научить тебя азам логики - это зря тратить твое время.
извини, больше не буду :-)
-
Кто-то сказал:
"Плохому учителю ученики мешают".
P.S. Извиняю.
-
Не фраза звучала так
"Плохим ученикам, учитель мешает"
:) :) :)
-
А разве это не про танцора фраза? :-)
-
У хорошего учителя все ученики хороши (каждый по-своему). Плохой учитель учит НЕ ТОМУ ЧЕМУ надо:
НАДО - "Использование "временной таблицы" MySQL"
НЕ НАДО - " потом, не знать, какую и заведомо неправильную - это разные вещи.
Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки."
-
хорош тебе уже оправдываться :-)
такое ощущение, что ты на форум ходишь самооценку свою отстаивать.
Ну не сообразил, логикой не покумекал - что в этом плохого?
Не всем быть программистами.
Ну, не читает человек факов, документацию - это позорно, но не смертельно :-)
а ты прямо так близко к сердцу все принимаешь :-)
вопрос-то твой выеденного яйца не стоит. Открыл бы доку, прочел бы, что функцияделает - вопросов бы не было.
Не позорься, а?
Хавтит уже
-
Не всем быть программистами.
[off]Ух, вот это самое жестокое :(
Вот так вот сразу на лоб клеймо...[/off]
-
Да.
Не всем быть программистами.
Некоторые могут быть только Тацорами.
Некоторые - Шерлок Холмсами ("Учитесь делать логические выводы, Ватсон.").
А кто-то делает своё дело и тихо смеётся с Танцоров и Холмсов.
А на счётХавтит уже
- да надо заканчивать пустую дискуссию.
-
Люблю я таких людей.
с чувством юмора.
Облажаются сами, но смеются над другими :-)
-
Почитал я ваш форум и понял половина салаг половина быков. Быки получили моё персональное сообщение. новиЧек - ты балбес.
-
закрывайте тему, вишь ты, какое говно полезло.