Гостевая книга: выбрать записи

mutex

Guest
Гостевая книга: выбрать записи

Пишу гостевую книгу. Подскажите, как лучше выбирать записи из БД. Например, нужно отображать 10 записей на каждой странице. Как поступить: выбрать все записи и отобразить нужные или сразу выбрать только те записи, которые нужны?
 

mutex

Guest
Найч
Ok, тогда следующий вопрос: я сразу сортирую записи по дате:
PHP:
$query = "SELECT * FROM gb_posts ORDER BY date DESC";
Теперь мне надо выбрать записи, скажем с порядковыми номерами 5-8 (3 поста на страницу). Как это сделать? таблица такая:
PHP:
'id' int(5) NOT NULL auto_increment,
'nickname' text NOT NULL,
'city' text NOT NULL,
'post' text NOT NULL,
'ip' varchar(50) NOT NULL default '',
'date' datetime NOT NULL default '0000-00-00 00:00:00',
'reserved' text NOT NULL,
PRIMARY KEY  ('id')) TYPE=MyISAM AUTO_INCREMENT=19;
id не подходит, т.к. записи можно удалять...
 

mutex

Guest
Man:

mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

Спасибо!
 

jeka!

Просто Member
'ip' varchar(50) - а я то думал всегда что ip это 16 символов...
А вобще лучше:

`ip` int UNSIGNED NOT NULL,

и при добавлении нового mysql функция INET_ATON('255.255.255.255')
 

mutex

Guest
Ok, это я учту. Тут возник еще один вопрос (я еще не всех тут достал?).
Когда я использую LIMIT для выбора только нужных записей, естественно, что mysql_num_rows возвращает мне именно это количество (т.е., фактически, количество постов на странице). А как узнать количество записей без выполнения запроса?

-~{}~ 03.05.04 23:11:

Все вроде понял. Сделал так:
PHP:
   $num = "SELECT COUNT(*) FROM gb_posts";
   $result = mysql_query($num);
   $rows1 = mysql_fetch_row($result);
   $rows = $rows1[0];
 

Найч

Алгоритмик :-)
mutex
Поясни задачу. Вот это
Когда я использую LIMIT для выбора только нужных записей, естественно, что mysql_num_rows возвращает мне именно это количество (т.е., фактически, количество постов на странице). А как узнать количество записей без выполнения запроса?
совершенно не понятно
 

mutex

Guest
Найч
Сначала я делал так:
PHP:
$query = "SELECT  * FROM gb_posts";
mysqlquery($query);
$rows = mysql_num_rows($query);
И таким образом определял количество записей в таблице. Но когда я стал использовать LIMIT, чтобы сразу доставать из таблицы только нужные записи, mysql_num_rows() стал возвращать мне количество строк, полученных в результате выполнения запроса (уже с LIMIT). Поэтому я и сделал так, как написал выше.
 

Frol

Новичок
PHP:
SELECT COUNT(*) FROM gb_posts
даст количество записей в таблице
 
Сверху