Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   MySQL (http://www.flasher.ru/forum/showthread.php?t=25715)

Anton-Killer 13.01.2002 16:16

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:

Зарание благодарен за помощ!!!
С Уважением Антон :)

Crazy 13.01.2002 16:23

1. select count(*) from ...

2. ... limit X,Y

Anton-Killer 13.01.2002 16:27

А подробнее никак нельзя написать
 
А подробнее никак нельзя написать
Плиз

Anton-Killer 13.01.2002 16:28

А и еще
 
Лимит это хорошо, а как он сделает ссылку на следущие 5 новостей и так далее
Зарание благодарен

Crazy 13.01.2002 16:35

Две подсказки уже есть. Теперь нужно думать. :) Опять же -- почитать в доке про LIMIT... :)

Anton-Killer 13.01.2002 16:44

Где взять этот док.
И нельзя-ли хоть немного написать кода.
Если не затруднит

Crazy 13.01.2002 16:47

http://www.mysql.com/documentation/index.html

Anton-Killer 13.01.2002 16:53

что-то я не могу там найти описание LIMIT

Anton-Killer 13.01.2002 16:59

Я вот нашел что-то, но током описания там нет, не очень могу разобраться
СИНТАКСИС:

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'... ]

Crazy 13.01.2002 17:08

LIMIT offset, rows -- с какого места, сколько строк :)

Anton-Killer 13.01.2002 17:22

Хорошо с этим разобрались, а как теперь сделать так что б ссылка создавалась на следующие 5 новостей. а если в базе меньше 5 новостей то ссылки нету.

Crazy 13.01.2002 17:41

Цитата:

Оригинал написал(а) Anton-Killer
Хорошо с этим разобрались, а как теперь сделать так что б ссылка создавалась на следующие 5 новостей. а если в базе меньше 5 новостей то ссылки нету.
Что там за совет был под номером 1? :)

Anton-Killer 13.01.2002 17:57

select count(*) from ...
что это значит

Crazy 13.01.2002 18:02

Где, говоришь, у тебя документация по MySQL? :)

Anton-Killer 13.01.2002 18:40

www.mysql.ru

Modest 13.01.2002 22:22

Подробно писать лень, так что вот кусок моей страницы... посмотри вроде все понятно...

<?$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>

Anton-Killer 15.01.2002 00:04

Спасибо тебе Modest.
А вот Crazy жопа жадная. Не мог даже помочь

а и еще я нашел сайт где все это хорошо рассписано
Сайт про всю эту фишку

Crazy 15.01.2002 00:13

Цитата:

Оригинал написал(а) Anton-Killer
Спасибо тебе Modest.
А вот Crazy жопа жадная. Не мог даже помочь

Я тебя тоже люблю. :D

Кстати, считай, что я тебе страшно отомстил: вместо того, чтобы научиться правильно решать эту задачу (для чего нужно было прочесть подсказки и 10 минут подумать) ты получил кривой образец для заучивания. :) Очень страшная мстя. :)

Anton-Killer 15.01.2002 00:29

За что только мстя. :(
Ты б лучше хоть немного объяснил, а не в загадках мне все рассказывал. :(
Важно ни то что Модест мне написал кривой код, а что он его всетаки написал, не поленился и у него было желание помочь.
А вот какое желание у тебя было? Я не знаю. :confused:
Мучаешь , понимаешь ли, бедного студнта своими загадками.
Помог бы что - ль. :) :)

Crazy 15.01.2002 00:31

Цитата:

Мучаешь , понимаешь ли, бедного студнта своими загадками.
Помог бы что - ль. :) :)

Ты перечитай мои "загадки" и текст с того URL'а, что ты кинул в эху. :)

Anton-Killer 15.01.2002 00:40

SELECT count(..) что этот запрос делает.
и как и где нужно писать LIMIT $n,$m
:) :)
Вот PLZ

Crazy 15.01.2002 00:43

Это утверждение или вопрос? :)

Anton-Killer 15.01.2002 00:46

Это утверждение или вопрос? :)
 
Вопрос.
:) :)

Crazy 15.01.2002 10:56

В таком случае ответ:

1. Через "select count(..." получаем общее количество записей.

2. Зная длину страницы определяем количество страниц.

3. Зная номер страницы (1 по дефолту) определяем смещение.

4. Вызываем "select ... limit..." с указаннием смещения и длины страницы.

И, собственно, все. :)

Modest 16.01.2002 19:54

ну не такой уж он кривой между нами девочками.... не слишком изящный спору нет....

Crazy 16.01.2002 19:59

Если бы он был СОВСЕМ КРИВОЙ, то я бы высказался куда более жестко. :)

DeepDiver 16.01.2002 21:28

2 Anton-killer - плюсик тебе на воротничок, дарагой! За неуважительное обращение к соратникам.
Крейзи тбя пытался научить ДУМАТЬ и ИСКАТЬ, а не списывать. Этому в институте и школе учат. Таких как он ценить надо - умеют помочь ровно настолько, насколько это необходимо.
Кроме того, не у всех бывает свободное время разжевывать все на мелкие кусочки.


Часовой пояс GMT +4, время: 16:10.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.