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

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

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

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

Felix
...
Рейтинг: 0 / 0
Сформулировать SQL-запрос,чтобы записи выдавать порциями
    #32315694
cch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cch
Гость
Такой селект не работает
$query = "SELECT date,news FROM $table ORDER by id DESC LIMIT $lim,10";
А если .... LIMIT 10 работает
...
Рейтинг: 0 / 0
Сформулировать SQL-запрос,чтобы записи выдавать порциями
    #32315827
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Сформулировать SQL-запрос,чтобы записи выдавать порциями
    #32316077
cch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cch
Гость
Феликс,спасибо за объяснение.
Следующая ситуация:
Селект выдает на экран 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
Сформулировать SQL-запрос,чтобы записи выдавать порциями
    #32316165
cch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cch
Гость
Феликс,извеняюсь,логика нарушена в примере
Осталось,чтоб гипперссылка подсветилась
Правильнее так:
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
Сформулировать SQL-запрос,чтобы записи выдавать порциями
    #32316849
Фотография ©Felix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
echo "<a href=asu_admin.php?str=$N class=link> $i </a>";

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


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


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