Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Навигация
 
 автор: G-Style   (25.10.2007 в 09:29)   письмо автору
 
 

Я написал сайт знакомств, общая структура такова: пользователь вводит параметры поиска (параметров семь) по этим параметрам из БД извлекаем результат (т.е. количество найденных анкет), на странице вывожу первые десять анкет, но общее количество (допустим) 32 анкеты.
Естественно надо делать навигацию типа «следующие десять». Вопрос: как сделать эту навигацию (разумно)?
Конечно, можно сделать ссылку типа: http://somehost/somepage.php?par1=1&par2=2&par3=3...
но это не то, чего хотелось бы, как то не разумно, может реализовать все через масив? в голову больше нечего не приходит.
Подскажите что-нибудь, если есть способы более интеллектуальные.
В заранее благодарю за проявленное внимание.

   
 
 автор: Faraon   (25.10.2007 в 09:33)   письмо автору
 
   для: G-Style   (25.10.2007 в 09:29)
 

http://www.softtime.ru/info/articlephp.php?id_article=33

   
 
 автор: cheops   (25.10.2007 в 12:13)   письмо автору
 
   для: G-Style   (25.10.2007 в 09:29)
 

Возможно вас заинтересуют темы по ссылкам
http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=3555
http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=3044

   
 
 автор: G-Style   (03.11.2007 в 09:59)   письмо автору
 
   для: cheops   (25.10.2007 в 12:13)
 

Cheops, спасибо. Спасибо всем, кто выделил мне время и написал ответ.

   
 
 автор: KPETuH   (25.10.2007 в 13:23)   письмо автору
 
   для: G-Style   (25.10.2007 в 09:29)
 

вот кусок кода с коментариями


# Определяем общее количество сообщений по данной теме.
$sql=mysql_query("select count(id) cc from koment where id_st='".$id_kom."';");
$all=mysql_fetch_row($sql);
$all_msg=$all[0];
# Если общее количество сообщений меньше чем количество сообщений на странице то...
if ($kolvo>$all_msg) (int)$kolvo=$all_msg;
# Это можно и не выводить...
echo "</br>Коментарии к : ".$id_kom." (".$all_msg.")</br>";
# Определяем кол-во страниц 
$nomber=(int)($all_msg/$kolvo);
if (((float)($all_msg/$kolvo)-$nomber)!=0) $nomber++;
# Проверяем передана ли страница
if(!empty($_GET['p'])) $p = in($_GET['p'],3);
else $p = 1;
# Определяем начало и конец
$start = ($p - 1)*$kolvo + 1;
$end = $p*$kolvo;
# Выводим содержимое страницы
(int)$st=$start-1;
$sql=mysql_query("select * from koment where id_st='$id_kom' order by date desc limit $st,$kolvo;");
while ($mass=mysql_fetch_row($sql))
    {
    echo "</br>";
    echo "<table>";
    echo "<tr><td class=date><table><tr><td class=name>".$mass[3]."</td><td class=date>".$mass[2]."</td></tr></table></td></tr>";
    echo "<tr><td class=email>".str_replace('@','[dog]',$mass[4])."</td></tr>";
    echo "<tr><td class=msg>".$mass[5]."</td></tr>";
    echo "</table>";
    }
#Навигация
echo "</br><table><tr><td class=list><table><tr>";
if (strpos($_SERVER['REQUEST_URI'],"?p=")>1) $link=ereg_replace("(\?p=[0-9]+)", "?",$_SERVER['REQUEST_URI']); 
elseif (strpos($_SERVER['REQUEST_URI'],"&p=")>1) $link=ereg_replace("(\&p=[0-9]+)", "&",$_SERVER['REQUEST_URI']);
elseif (strpos($_SERVER['REQUEST_URI'],"?")>1) $link=$_SERVER['REQUEST_URI']."&";
else $link=$_SERVER['REQUEST_URI']."?";
for ($i=0;$i<$nomber;$i++)
{
# Выделение жирным шрифтом текущей страницы
    if ($i+1==$p)
    {
         if ($i==$nomber-1 )
        {
            echo "<td class=arhor><a class=arhor href=".$link."p=".($i+1)."><b>[".($i*$kolvo + 1)."..".$all_msg."]</b></a></td>";
        }
        else
        {
            echo "<td class=arhor><a class=arhor href=".$link."p=".($i+1)."><b>[".($i*$kolvo + 1)."..".(($i+1)*$kolvo)."]</b></a></td>";
        }
    }
    else
# Обычные страницы
    {
        if ($i==$nomber-1 )
        {
            echo "<td class=arhor><a class=arhor href=".$link."p=".($i+1).">[".($i*$kolvo + 1)."..".$all_msg."]</a></td>";
        }
        else
        {
            echo "<td class=arhor><a class=arhor href=".$link."p=".($i+1).">[".($i*$kolvo + 1)."..".(($i+1)*$kolvo)."]</a></td>";
        }
    }
}
echo "</tr></table></td></tr></table>";


$kolvo - это количество соббщения на странице задается ранее...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования