![]() |
MySQL
Помогите кто чем может.
<? while (($row = mysql_fetch_object($result))) { printf (" <img src=images/news.gif alt=%s> <font color=red><b>%s</b></font><br> <font color=black>%s</font><br><br> <b>С уважением %s</b><br><br>", $row->PABLISH, $row->PABLISH, $row->BODY, $row->ADMIN); } mysql_free_result($result); ?> А вот как мне ограничить вывод. Например у меня есть таблица news Мне нужно чтоб вывод происходил по пять новостей, а если больше новостей то чтоб делал ссылку на следующие 5 новостей. :rolleyes: Зарание благодарен за помощ!!! С Уважением Антон :) |
1. select count(*) from ...
2. ... limit X,Y |
А подробнее никак нельзя написать
А подробнее никак нельзя написать
Плиз |
А и еще
Лимит это хорошо, а как он сделает ссылку на следущие 5 новостей и так далее
Зарание благодарен |
Две подсказки уже есть. Теперь нужно думать. :) Опять же -- почитать в доке про LIMIT... :)
|
Где взять этот док.
И нельзя-ли хоть немного написать кода. Если не затруднит |
|
что-то я не могу там найти описание LIMIT
|
Я вот нашел что-то, но током описания там нет, не очень могу разобраться
СИНТАКСИС: SELECT [STRAIGHT_JOIN] [DISTINCT | ALL] select_expression,... [FROM tables... [WHERE where_definition] [GROUP BY column,...] [ORDER BY column [ASC | DESC], ...] HAVING full_where_definition [LIMIT [offset,] rows] [PROCEDURE procedure_name]] [INTO OUTFILE 'file_name'... ] |
LIMIT offset, rows -- с какого места, сколько строк :)
|
Хорошо с этим разобрались, а как теперь сделать так что б ссылка создавалась на следующие 5 новостей. а если в базе меньше 5 новостей то ссылки нету.
|
Цитата:
|
select count(*) from ...
что это значит |
Где, говоришь, у тебя документация по MySQL? :)
|
|
Подробно писать лень, так что вот кусок моей страницы... посмотри вроде все понятно...
<?$pageit=15; $mSql="SELECT * FROM имя таблицы"; $result=mysql_db_query($mySQLbaza,$mSql); if(!mysql_num_rows($result)) {exit;} $result=mysql_db_query($mySQLbaza,$mSql); $alllady=mysql_num_rows($result); $allpagestemp=mysql_num_rows($result)/$pageit; $allpages=intval(mysql_num_rows($result)/$pageit); if(($allpagestemp-$allpages)!=0) ++$allpages; if($pages>=$allpages) $pages=$allpages-1; if($pages*$pageit+$pageit>$alllady) $ladyEnd=$alllady; else $ladyEnd=$pages*$pageit+$pageit; $mSql.=" ORDER BY lastupdate DESC LIMIT ".($pageit*$pages).",$pageit"; $result=mysql_db_query($mySQLbaza,$mSql); ?> <script language=javascript> function gotopages() { mypages=prompt("Введите номер страницы:",""); mypages=parseInt(mypages); if(mypages) { mypages--; location.href="index.php?cmd=guest&pages="+mypages+""; } } </script>..... текст страницы и т.д. <? $i=0; while($row=mysql_fetch_object($result)){ ?> выводим что нам надо... <?$i++;}?> <tr><td align=center><small><b>Страница <?=$pages+1?> из <?=$allpages?></b></small></td></tr> <table width=70% cellpadding=0 cellspacing=0 border=0 align=ceneter> <tr> <td><?if($pages>=1){?><a href="index.php?cmd=guest&pages=<?=$pages-1?>"><?}?>Предыдущая страница<?if($pages>=1){?></a><?}?></td> <td><?if($allpages>=2){?><a href="#" onClick="gotopages();return false;"><?}?>Перейти к странице<?if($allpagess>=2){?></a><?}?></td> <td><?if($pages<($allpages-1)){?><a href="index.php?cmd=guest&pages=<?=$pages+1?>"><?}?>Следующая страница<?if($pages<($allpagesss-1)){?></a><?}?></td> |
Спасибо тебе Modest.
А вот Crazy жопа жадная. Не мог даже помочь а и еще я нашел сайт где все это хорошо рассписано Сайт про всю эту фишку |
Цитата:
Кстати, считай, что я тебе страшно отомстил: вместо того, чтобы научиться правильно решать эту задачу (для чего нужно было прочесть подсказки и 10 минут подумать) ты получил кривой образец для заучивания. :) Очень страшная мстя. :) |
За что только мстя. :(
Ты б лучше хоть немного объяснил, а не в загадках мне все рассказывал. :( Важно ни то что Модест мне написал кривой код, а что он его всетаки написал, не поленился и у него было желание помочь. А вот какое желание у тебя было? Я не знаю. :confused: Мучаешь , понимаешь ли, бедного студнта своими загадками. Помог бы что - ль. :) :) |
Цитата:
|
SELECT count(..) что этот запрос делает.
и как и где нужно писать LIMIT $n,$m :) :) Вот PLZ |
Это утверждение или вопрос? :)
|
Это утверждение или вопрос? :)
Вопрос.
:) :) |
В таком случае ответ:
1. Через "select count(..." получаем общее количество записей. 2. Зная длину страницы определяем количество страниц. 3. Зная номер страницы (1 по дефолту) определяем смещение. 4. Вызываем "select ... limit..." с указаннием смещения и длины страницы. И, собственно, все. :) |
ну не такой уж он кривой между нами девочками.... не слишком изящный спору нет....
|
Если бы он был СОВСЕМ КРИВОЙ, то я бы высказался куда более жестко. :)
|
2 Anton-killer - плюсик тебе на воротничок, дарагой! За неуважительное обращение к соратникам.
Крейзи тбя пытался научить ДУМАТЬ и ИСКАТЬ, а не списывать. Этому в институте и школе учат. Таких как он ценить надо - умеют помочь ровно настолько, насколько это необходимо. Кроме того, не у всех бывает свободное время разжевывать все на мелкие кусочки. |
| Часовой пояс GMT +4, время: 16:10. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.