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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Навигация

Сообщения:  [1-5] 

 
 автор: 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 - это количество соббщения на странице задается ранее...

   
 
 автор: 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

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

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

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

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

   

Сообщения:  [1-5] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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