page limit
8 отговора
556 прегледа
page limit
Искам като резултат от запитване, да ми връща таблица с определен брой редове и останалите резултати от запитването да се появяват на следващата страница. Знам че има нещо като page limit но как се използва? Извинявайте за елементарния въпрос, но съм нов и неразбирам много.
Re: page limit
Става точно с LIMIT.
Пример: SELECT * FRОM MyTable LIMIT 20,10 - Това връща 10 резултата като започне от 20-ия.
__________________________________
Пътя към ада е осеян с добри намерения
Пример: SELECT * FRОM MyTable LIMIT 20,10 - Това връща 10 резултата като започне от 20-ия.
__________________________________
Пътя към ада е осеян с добри намерения
Re: page limit
Благодаря, но нестава - limit 20,10 невръща никакъв резултат. Пробвах с limit 0, 10 или май беше с 10, 0 - като резултат наистина получавам само 10 резултата, но в края на таблицата с резултатите не се появява навигация към следващите 10 резултата, а това е идеята - когато като резултат от запитването получа да кажем 25 реда, да имам две страници с по 10 резултата и една с 5 и естествено някаква навигация между тях.
Re: page limit
Това за LIMIT-a дето ти го казах работи при MySQL, но при другите предполагам е нещо такова. Ти с ква база данни работиш?
Странирането като такова не се извършва с SQL заявката а се прави с програмиране.
Ще ти го обясня малко по-подробно, но само малко
.
Файла с който работиш ти е fun.php примерно.
1. Инициализираш си променливите които ще участват в заявката:
if (!$JokesByPage) $JokesByPage=10; // Това примерно ще ти е by default
if (!$StartJoke) $StartJoke=0;
$JokesByPage ти е по колко да ти изкарва на страница а $StartJoke е от коя да започне.
2. Правиш си SELECT-a
SELECT * FROM MyTable LIMIT $StartJoke, $JokesByPage
След това си правиш някякъв подобен линк на:
<a href=fun.php?StartJoke=".($StartJoke+$JokesByPage).">Sledwashti</a>
Това е само за напред. Останалите оставам на теб. Има и други малки трикчета при ходенето на зад ама ... нека удоволствието е твое
Айде със здраве
__________________________________
Пътя към ада е осеян с добри намерения
Странирането като такова не се извършва с SQL заявката а се прави с програмиране.
Ще ти го обясня малко по-подробно, но само малко
Файла с който работиш ти е fun.php примерно.
1. Инициализираш си променливите които ще участват в заявката:
if (!$JokesByPage) $JokesByPage=10; // Това примерно ще ти е by default
if (!$StartJoke) $StartJoke=0;
$JokesByPage ти е по колко да ти изкарва на страница а $StartJoke е от коя да започне.
2. Правиш си SELECT-a
SELECT * FROM MyTable LIMIT $StartJoke, $JokesByPage
След това си правиш някякъв подобен линк на:
<a href=fun.php?StartJoke=".($StartJoke+$JokesByPage).">Sledwashti</a>
Това е само за напред. Останалите оставам на теб. Има и други малки трикчета при ходенето на зад ама ... нека удоволствието е твое
Айде със здраве
__________________________________
Пътя към ада е осеян с добри намерения
Re: page limit
Здрасти StanProg,
благодаря за онзи код, направих го да ходи напред и назад из резултатите, ако си поиграя още ще направя и най-отгоре да ми показва колко записа има в резулата, а отдолу да ми изписва "Следващите х резултат(а)" или нещо такова. Обаче в кода на един guestbook открих едно решение което ми допада повече. То изкарва броя на страниците с резултати като лента за навигация. Например ако имам 4 страници, най-отдолу ще ми изкара нещо като това: " 1 | 2 | 3 | 4 "
ето го и кода:
първо във заявката:
$query = (" select * from offers order by salary desc LIMIT ". ($pageid*10) .",10");
след като свърши кода, който показва резултата от заявката, се прави нова заявка:
$query = "SELECT count(*) FROM offers order by salary desc";
$result = mysql_query($query);
$number = mysql_fetch_row($result);
$number_pages = floor(($number[0]-1)/10) + 1;
if ($number[0]>10) {for ($i=1; $i<=$number_pages; $i++) { $ii=$i-1; echo "<a href=\"list_offers.php?pageid=$ii\"><font face=\"Verdana\" size=\"1\" color=051dba><b>$i </b></a>| "; }}
хитро е и работи добре. При опит да го сложа в центъра (защото то се появява в левия край) обаче, числата се подреждат в колонка, а не в редичка :)
и да се оплача малко: от host.sk ми изтриха акаунта! нищо нередно не бях правил, обаче сега там нямам нищо!!!! Мога да си създам нов акаунт, обаче вече неразрешават създаване на MySQL база-данни, защото са достигнали максималния си брой.
Открих един платен хостинг за около 80 лв. на година. Като си помисля че за една година давам няколко пъти повече пари за интернет, сериозно се замислям дали да не се откажа завинаги от безплатните хостинги...
[линк]
благодаря за онзи код, направих го да ходи напред и назад из резултатите, ако си поиграя още ще направя и най-отгоре да ми показва колко записа има в резулата, а отдолу да ми изписва "Следващите х резултат(а)" или нещо такова. Обаче в кода на един guestbook открих едно решение което ми допада повече. То изкарва броя на страниците с резултати като лента за навигация. Например ако имам 4 страници, най-отдолу ще ми изкара нещо като това: " 1 | 2 | 3 | 4 "
ето го и кода:
първо във заявката:
$query = (" select * from offers order by salary desc LIMIT ". ($pageid*10) .",10");
след като свърши кода, който показва резултата от заявката, се прави нова заявка:
$query = "SELECT count(*) FROM offers order by salary desc";
$result = mysql_query($query);
$number = mysql_fetch_row($result);
$number_pages = floor(($number[0]-1)/10) + 1;
if ($number[0]>10) {for ($i=1; $i<=$number_pages; $i++) { $ii=$i-1; echo "<a href=\"list_offers.php?pageid=$ii\"><font face=\"Verdana\" size=\"1\" color=051dba><b>$i </b></a>| "; }}
хитро е и работи добре. При опит да го сложа в центъра (защото то се появява в левия край) обаче, числата се подреждат в колонка, а не в редичка :)
и да се оплача малко: от host.sk ми изтриха акаунта! нищо нередно не бях правил, обаче сега там нямам нищо!!!! Мога да си създам нов акаунт, обаче вече неразрешават създаване на MySQL база-данни, защото са достигнали максималния си брой.
Открих един платен хостинг за около 80 лв. на година. Като си помисля че за една година давам няколко пъти повече пари за интернет, сериозно се замислям дали да не се откажа завинаги от безплатните хостинги...
[линк]
Re: page limit
има обаче един недостатък - като се движиш по страниците не знаеш къде си точно дали на първа или на последна, не става с alink в body защото броя на страниците се определя динамично всеки път когато се изпълнява скрипта. така че ще трябва предварително да се определи броя на страниците и съобразно броя не резултатите в тях да се показва поне че сме на резултат от 1 до 5 или от 16 до 20
Re: page limit
Ето едно решение:
имаш два реда:
на първия се изписват номерата на всички страници, например 1 2 3 4 5 6
на втория ред ще имаш: "Страница 4 от 6"
това става с този код:
echo "Страница $ii+1 от $number_pages";
прибавям единица към $ii защото първата страница всъщност има стойност нула.
А сега като си помисля май не е трудно да имаш нещо като:
назад страница 4 напред
имаш два реда:
на първия се изписват номерата на всички страници, например 1 2 3 4 5 6
на втория ред ще имаш: "Страница 4 от 6"
това става с този код:
echo "Страница $ii+1 от $number_pages";
прибавям единица към $ii защото първата страница всъщност има стойност нула.
А сега като си помисля май не е трудно да имаш нещо като:
назад страница 4 напред