Forum Webscript.Ru

Программирование => PHP => Тема начата: Shamandeffer от 12 Июня 2003, 02:05:29

Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 12 Июня 2003, 02:05:29
:cool:
Хочу реализовать постраничный вывод из базы данных.
Т.е. если SELECT нашёл 25 строки, а я вывожу по 10 строк.
Как лучше сделать - временая таблица в MySQL или...

Может где-нибудь есть похожая реализация для примера?
А то у меня что-то долго не получается...
:cool:
Название: Использование "временной таблицы" MySQL
Отправлено: Xander от 12 Июня 2003, 02:31:18
Shamandeffer
почитай статьи на самом сайте webscript.ru
и по форуму поищи, было.

но временные таблицы совсем не для этого. Это делается через LIMIT что ли...
Название: Использование "временной таблицы" MySQL
Отправлено: ThE0ReTiC от 12 Июня 2003, 02:50:23
Цитировать
Xander:
Это делается через LIMIT что ли

Именно так
Цитировать
Shamandeffer:
временая таблица

Лисапед не изобретай
SELECT ... FROM ... LIMIT $startValue, $RecordsOnPage
Название: Использование "временной таблицы" MySQL
Отправлено: nagash от 12 Июня 2003, 04:28:00
а чтобы знать сколько у тебя всего записаей
SELECT COUNT(*)
Название: Использование "временной таблицы" MySQL
Отправлено: ThE0ReTiC от 12 Июня 2003, 11:32:22
nagash
SELECT COUNT(1) работает быстрее
Название: Использование "временной таблицы" MySQL
Отправлено: fidget от 12 Июня 2003, 11:55:30
ThE0ReTiC, неа ;)
Они работают оба одинаково, т.к. для таблиц MyISAM берут готовое значение, а не считают.
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 12 Июня 2003, 14:09:50
а чтобы знать сколько у тебя всего записаей
SELECT COUNT(*)
А я узнаю количество записей с помощью mysql_num_rows - это не правильно?!
Название: Использование "временной таблицы" MySQL
Отправлено: Макс от 12 Июня 2003, 14:18:25
SELECT * FROM tab LIMIT 0,20 - для него mysql_num_rows вернет 20 (или меньше, если записей меньше 20) потому как ты получишь первые 20 записей, а в таблице их может быть больше.
Чтобы узнать сколько всего записей в таблице
SELECT COUNT(*) FROM tab
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 12 Июня 2003, 14:43:38
Цитировать


Xander:
Это делается через LIMIT что ли
ThE0ReTiC
Именно так

 А где это в мануале (там должны быть примеры).

В статьях я не нашёл. (тяжело в учении - легко в бою).
Название: Использование "временной таблицы" MySQL
Отправлено: fidget от 12 Июня 2003, 15:16:55
тут:

http://www.mysql.com/doc/en/SELECT.html
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 12 Июня 2003, 16:42:31
Я сделал вот, что (и вроде работает):

SELECT ... FROM ... ORDER BY ... LIMIT $Mes_count, $Mes_limit,
где $Mes_count - начальная старока (изменяется простым умножением на переменную $page(по-умолчанию равной 0, и изменяющейся на 1);
      $Mes_limit - cоответственно количество выводимых строк.
Это информация для тех кто интересуется или ищет (будет искать) ответ на такой же вопрос.

Но хотел бы уточнить - Где надо использовать СOUNT(*)?
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 12 Июня 2003, 16:55:33
Цитировать
fidget:
Они работают оба одинаково, т.к. для таблиц MyISAM берут готовое значение, а не считают.

постраничный вывод редко обходится без where
а в этом случае готове значение взять неоткуда.

Shamandeffer
количество всех записей тебе понадобится в том случае, если ты хочешь вывести ссылки на все страницы.

еще тебе понадобится команда PHP ceil, которая округляет в большую сторону
Название: Использование "временной таблицы" MySQL
Отправлено: fidget от 12 Июня 2003, 16:56:32
Цитировать
Shamandeffer:
Где надо использовать СOUNT(*)?


ну если тебе надо узнать общее кол-во строк в таблице :)

SELECT COUNT(*) FROM table
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 14 Июня 2003, 02:32:33
Ещё несколько слов о SELECT CUONT(*) From table....
Я пишу:
$All_Mes=mysql_query(" SELECTCOUNT(*) FROM $Table WHERE... ");
но
echo $All_Mes; выдаёт мне Resource id #17
Не могу понять как получить число?
Название: Использование "временной таблицы" MySQL
Отправлено: Макс от 14 Июня 2003, 10:50:45

$All_Mes=mysql_query(" SELECT COUNT(*) FROM $Table WHERE... ");
$row = mysql_fetch_row($All_Mes);
echo $row[0];
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 14 Июня 2003, 11:50:13
число получить точно так же, как и любые дроугие данные.
почему-то, когда ты получаешь строку, ты не обращаешься к результату mysql_query, а когда хочешь оно поле - то сразу тебе это захотелось.
А логика где?
Название: Использование "временной таблицы" MySQL
Отправлено: FreeSpace от 14 Июня 2003, 14:34:38
RomikChef
Логика в том, что человек мог юзать database abstraction layer с функцией query_first и немного запутаться :)
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 15 Июня 2003, 14:34:30
Цитировать
.RomikChef
        число получить точно так же, как и любые дроугие данные.
почему-то, когда ты получаешь строку, ты не обращаешься к результату mysql_query, а когда хочешь оно поле - то сразу тебе это захотелось.
А логика где?

   
Для получения строки я использую mysql_fetch_array.
Я просто не знал кокую функцию конкретно надо применять
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 15 Июня 2003, 15:53:44
ту же самую.

И потом, не знать, какую и заведомо неправильную - это разные вещи.

Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки.
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 16 Июня 2003, 23:33:16
Цитировать
Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки.

 Я отличаюсь от ЭТОГО мужа тем что перед тем как купить водки я перепробывал все сорта хлеба и мучных изделий. А когда узнал, что водку делают их зерна, то решил что и она может подойти.

А вообще, я заглядываю на этот форум для того чтобы пообщаться с людьми в целях самообразования, а не для того чтобы зря тратить своё время.

RomikChef
А за ceil спасибо.
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 17 Июня 2003, 10:59:07
Да, я уже вижу, что научить тебя азам логики - это зря тратить твое время.
извини, больше не буду :-)
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 17 Июня 2003, 20:11:32
Кто-то сказал:
 "Плохому учителю ученики мешают".
P.S. Извиняю.
Название: Использование "временной таблицы" MySQL
Отправлено: NAS от 17 Июня 2003, 22:33:53
Не фраза звучала так
"Плохим ученикам, учитель мешает"

:) :) :)
Название: Использование "временной таблицы" MySQL
Отправлено: Metaller от 18 Июня 2003, 09:01:33
А разве это не про танцора фраза? :-)
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 18 Июня 2003, 18:30:42
У хорошего учителя все ученики хороши (каждый по-своему). Плохой учитель учит НЕ ТОМУ ЧЕМУ надо:
НАДО     - "Использование "временной таблицы" MySQL"
НЕ НАДО - " потом, не знать, какую и заведомо неправильную - это разные вещи.

Твое оправдание - это все равно, что муж, которого жена послала за хлебом:
- Я не знал, какого хлеба купить, поэтому купил водки."
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 18 Июня 2003, 18:37:57
хорош тебе уже оправдываться :-)
такое ощущение, что ты на форум ходишь самооценку свою отстаивать.

Ну не сообразил, логикой не покумекал - что в этом плохого?
Не всем быть программистами.
Ну, не читает человек факов, документацию - это позорно, но не смертельно :-)
а ты прямо так близко к сердцу все принимаешь :-)

вопрос-то твой выеденного яйца не стоит. Открыл бы доку, прочел бы, что функцияделает - вопросов бы не было.
Не позорься, а?
Хавтит уже
Название: Использование "временной таблицы" MySQL
Отправлено: FreeSpace от 18 Июня 2003, 18:54:40
Цитировать
Не всем быть программистами.

[off]Ух, вот это самое жестокое :(
Вот так вот сразу на лоб клеймо...[/off]
Название: Использование "временной таблицы" MySQL
Отправлено: Shamandeffer от 18 Июня 2003, 19:08:38
Да.
Не всем быть программистами.
Некоторые могут быть только Тацорами.
Некоторые - Шерлок Холмсами ("Учитесь делать логические выводы, Ватсон.").
А кто-то делает своё дело и тихо смеётся с Танцоров и Холмсов.

А на счёт
Цитировать
Хавтит уже
- да надо заканчивать пустую дискуссию.
Название: Использование "временной таблицы" MySQL
Отправлено: Меняздесьдавнонет от 18 Июня 2003, 19:12:59
Люблю я таких людей.
с чувством юмора.
Облажаются сами, но смеются над другими :-)
Название: Использование "временной таблицы" MySQL
Отправлено: Qwertyuiop от 18 Июня 2003, 20:00:20
Почитал я ваш форум и понял половина салаг половина быков. Быки получили моё персональное сообщение. новиЧек - ты балбес.
Название: Использование "временной таблицы" MySQL
Отправлено: Xander от 18 Июня 2003, 20:26:07
закрывайте тему, вишь ты, какое говно полезло.