Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сформулировать SQL-запрос,чтобы записи выдавать порциями / 10 сообщений из 10, страница 1 из 1
03.11.2003, 13:51
    #32313477
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Всем,Здравствуйте!
Вопрос такой:
Есть таблица, 30000 записей,выдавать на экран надо порциями по 50 записей.
(без TMP,в оперативной памяти)
Создаем запрос :Select * from media limit N
N=50+50+50....
Как правильно задать итерацию в запросе и передавать номер страницы
(чтобы в конце каждой страницы выдавать строку:
1 2 3 4 .. next)
Заранее благодарна.
...
Рейтинг: 0 / 0
03.11.2003, 14:59
    #32313597
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
когда то я делал ето так... здесь принцип а дальше нужно думать...

<table border="0" width="700" border="0" cellpadding="2" cellspacing="0" align="center">
<tbody>
<tr>
<td class=text_h align="center" colspan="2"> Ïðîñìîòð ëåíòû íîâîñòåé... </td>
</tr>
<tr>

<?
$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);
while ($row = mysql_fetch_object ($result))
{
?>
<td width="90" class=n_date align="center" valign="top"><?echo $row->date;?></td>
<td width="600" class=n_body><?echo $row->news;?></td>
<tr>
<td></td>
<td bgcolor="#9966CC" height="1"></td>
</tr>
<?
};
?>

<tr>
<td colspan="2" align="right"><a href="#top" onClick="scrollTo(0,0); return false;"><img src="../img/str_up.gif" border="0" alt="Ââåðõ"></td>
</tr>
<tr>
<td colspan=2 align=center>Ñòðàíèöà <?echo $l?></td>
</tr>
<tr>
<td colspan=2 align="center">=<?
for($i=1;$i<=$k_l;$i++)
{
echo "<a href=?l=$i class=link>$i</a>=";
};
?>
</td>
</tr>

</tbody>
</table>
Felix
...
Рейтинг: 0 / 0
04.11.2003, 06:11
    #32314259
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Феликс,Большое спасибо за помощь!
...
Рейтинг: 0 / 0
04.11.2003, 09:14
    #32314326
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Подскажите,пожалуйста,ссылку ,где можно прочитать про оператор LIMIT
В стандартных описаниях я не нашла
Заранее благодарю.
...
Рейтинг: 0 / 0
04.11.2003, 09:52
    #32314363
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
http://www.mysql.com/doc/ru/SELECT.html на русском

http://www.mysql.com/doc/en/SELECT.html на инглише....

начиная со строк "Выражение LIMIT может использоваться для ограничения количества строк, "

Felix
...
Рейтинг: 0 / 0
05.11.2003, 10:24
    #32315694
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Такой селект не работает
$query = "SELECT date,news FROM $table ORDER by id DESC LIMIT $lim,10";
А если .... LIMIT 10 работает
...
Рейтинг: 0 / 0
05.11.2003, 11:27
    #32315827
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
a $lim определена???????? и вообще то я для примера бросил... у меня работало и ето подогнано под то что мне было нужно.... просто я переписывавть не хотел...
в мануале четко написано

Код: plaintext
1.
2.
3.
4.
5.
6.
Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно  0  (не  1 ): 
mysql> SELECT * FROM table LIMIT  5 , 10 ; # возвращает строки  6 - 15 

Если задан один аргумент, то он показывает максимальное количество возвращаемых строк: 
mysql> SELECT * FROM table LIMIT  5 ; # возвращает первых  5  строк

Другими словами, LIMIT n эквивалентно LIMIT  0 ,n. 


вывод.... не определена $lim



Felix
...
Рейтинг: 0 / 0
05.11.2003, 13:45
    #32316077
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Феликс,спасибо за объяснение.
Следующая ситуация:
Селект выдает на экран 2 -е последних записи,
ссылка не подсвечивается как гиперссылка

Вид на экране такой "1 <a href="asu_admin.php?str=10 class=link>2" "
вместо "1 2"
______________________________________________________________________
isset($page);
isset($page_number);
isset($N);
isset($i);
//$p-кол-во страниц
for($i=1;$i<=$p;$i++)
{
$page=10; // заданное количество записей на экране
$page_number=$i*10;// проверяем текущее состояние
$N=($i*10)-10; // номер записи с какой делать SELECT
if($page_number != $page)
{
"SELECT ... limit $N,10
//выдача 10 записей и т.д.

echo"<a href=\"asu_admin.php?str=$N class=link>$i </a>";

}else{ echo"$i ";}
}
_________________________________________________________________
...
Рейтинг: 0 / 0
05.11.2003, 14:23
    #32316165
cch
cch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
Феликс,извеняюсь,логика нарушена в примере
Осталось,чтоб гипперссылка подсветилась
Правильнее так:
for($i=1;$i<=$p;$i++)
{
$N=($i*10)-10;
"SELECT ... limit $N,10


if($page_number != $page)
{

echo"<a href=\"asu_admin.php?str=$N class=link>$i </a>";

}else{ echo"$i ";}
}
...
Рейтинг: 0 / 0
06.11.2003, 09:50
    #32316849
©Felix
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформулировать SQL-запрос,чтобы записи выдавать порциями
echo "<a href=asu_admin.php?str=$N class=link> $i </a>";

рекомендую почитать про оператор echo и про синтаксис хтмл тегов...


Felix
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сформулировать SQL-запрос,чтобы записи выдавать порциями / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]