пОСТРАНИЧНЫЙ вЫВОД
$query = "SELECT id FROM $table ORDER by id DESC";
$result = MYSQL_QUERY($query);
$kol_str = mysql_num_rows($result);
if (bcmod($kol_str,10)==0)
{
$k_l=bcdiv($kol_str,10);
} else
{
$k_l=bcdiv($kol_str,10)+1;
};
$lim=$l*10-10;
$query = "SELECT date,news FROM $table ORDER by id DESC LIMIT $lim,10";
$result = MYSQL_QUERY($query);
все как бы для того чтоб выбирать только 10 записей для каждой страници но что получаеться
$query = "SELECT id FROM $table ORDER by id DESC";
все равно ведь сначала выбираються все...
интуитивно мне кажеться то выбрать только все id проше чем всю таблицу а потом брать только 10 значений.... я прав???
или ето вообще реализуеться по другому????? хотя мне кажеться что все равно придеться выбрать все чтоб посчитать кол-во страниц... хотя можно выбирать пачками по 10 .. а когда закончаться остановиться.. но тогда как номера страниц узнать???
Код:
$r=mysql_query("SELECT count(*) FROM $table");
$total=ceil(mysql_result($r)/10);
print "Показана страница ".$page." из ".$total;
$query = "SELECT date,news FROM ".
$table."ORDER by id DESC LIMIT ".($page*10).",10";
$total=ceil(mysql_result($r)/10);
print "Показана страница ".$page." из ".$total;
$query = "SELECT date,news FROM ".
$table."ORDER by id DESC LIMIT ".($page*10).",10";
Писалось тут, может не работать.
$query = "SELECT id FROM $table ORDER by id DESC LIMIT $beg, $lenght";
... причем нельзя, чтобы $beg был по величине больше, чем возможное количество записей. $lenght может быть любым целым, больше нуля.
Цитата:
Originally posted by Felix
хотя мне кажеться что все равно придеться выбрать все чтоб посчитать кол-во страниц...
хотя мне кажеться что все равно придеться выбрать все чтоб посчитать кол-во страниц...
Зря ты так думаешь. Запрос "SELECT count(*) FROM table" (в таком виде как написан здесь, т.е. без WHERE, GROUP и т.п) вообще не трогает данные таблицы, он лишь выбирает их количество из заголовков.
Вот попробуй, создай огромную таблицу и выполни сначала свой запрос, а потом SELECT count(*) FROM table. Второй запрос всегда будет выполнятся за 0.00 сек
Цитата:
Originally posted by mike
Зря ты так думаешь. Запрос "SELECT count(*) FROM table" (в таком виде как написан здесь, т.е. без WHERE, GROUP и т.п) вообще не трогает данные таблицы, он лишь выбирает их количество из заголовков.
Вот попробуй, создай огромную таблицу и выполни сначала свой запрос, а потом SELECT count(*) FROM table. Второй запрос всегда будет выполнятся за 0.00 сек
Зря ты так думаешь. Запрос "SELECT count(*) FROM table" (в таком виде как написан здесь, т.е. без WHERE, GROUP и т.п) вообще не трогает данные таблицы, он лишь выбирает их количество из заголовков.
Вот попробуй, создай огромную таблицу и выполни сначала свой запрос, а потом SELECT count(*) FROM table. Второй запрос всегда будет выполнятся за 0.00 сек
спасибо... вот ето меня и интересовало.. я совсем забыл про каунт... то что нужно...
Цитата:
Originally posted by Dolonet
Пишешь всего один запрос:
$query = "SELECT id FROM $table ORDER by id DESC LIMIT $beg, $lenght";
... причем нельзя, чтобы $beg был по величине больше, чем возможное количество записей. $lenght может быть любым целым, больше нуля.
Пишешь всего один запрос:
$query = "SELECT id FROM $table ORDER by id DESC LIMIT $beg, $lenght";
... причем нельзя, чтобы $beg был по величине больше, чем возможное количество записей. $lenght может быть любым целым, больше нуля.
если вы заметили я спрашивал совсем не ето.... и если вы заметили то в своем коде то что вы написали у меня есть... меня интересовало совершенно другое... а именно то что ответил майк...