Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Базы Данных > Разделение по страницам


Автор: sunland 29.6.2006, 03:58
http://www.xefus.net/ideas/xe-cat/index.php smile 

Вот такая проблема:

Выводиться ризультаты из базы данных (сайт, описание, url).
И проблема заключеться в том что я не могу создать чтобы после определеного количества сайтов новая страница была сгинирирована.

Тоесть примерно после 5 сайтов создавалась новая странича автамотически. 

Вот код вызова сайтов
Код

} elseif(isset($sid)) {

    $qs = mysql_query("select * from $t_subcategory where id='$sid' order by name");
    $qsrow = @mysql_fetch_array($qs);
    $qc = mysql_query("select * from $t_category where id='".$qsrow["cid"]."' order by name");
    $qcrow = @mysql_fetch_array($qc);

    print "<div align=center>\n";
    print "<a href=\"index.php\" class=up>Home</a> » <a href=\"index.php?cid=".$qcrow["id"]."\"class=up>".$qcrow["name"]."</a> &#187 ".$qsrow["name"]."<br><br>\n";
    print "<table width=70% cellspacing=2 cellpadding=2 border=0>\n";

    $ql = mysql_query("select * from $t_links where sid='$sid' order by counter DESC");
    $total = mysql_num_rows($ql);

    if($total == 0) { print "<tr><td class='error'>No Sites are found in this Catergory.</td></tr>"; }
    else {
        while($qlrow = @mysql_fetch_array($ql)) {

            print "<tr>\n";
            print "<td>\n";
                        print "<a target=_blank href=\"go.php?id=".$qlrow["id"]."\" class=link>".$qlrow["name"]."</a><br>\n";
            print "<div class=aboutlink>".$qlrow["description"]."</div>";
            print "<div class=url>".$qlrow["url"]."</div><br>";
            print "</td>\n";
            print "</tr>\n";    
}
    }    
    print "</table>\n</div>\n";
}


Я знаю что сдесь есть пример. http://forum.vingrad.ru/index.php?act=module&module=vingradfaq&target=main_panel&article=2364

Но я не пойму как их соединить вмести. smile 
 
Не мог бы кто-то подсказать и написать код страницы которая мне нужна. smile 
   

Автор: PARROT 29.6.2006, 08:35
Так, нужно посчитать сколько записей в базе, разделить их на количество, в данном случае на 5.  

Автор: sunland 29.6.2006, 20:13
Но в таком случае страница не будет создана автоматически! 

Автор: PARROT 29.6.2006, 20:22
Код

<?
if (!isset($s)) $s=0;
..............................вывод где limit $s, 10//$s-страница    10 количество ссылок на страницу
$res4=mysql_query("select count(id) from review WHERE parent=0");
$num=mysql_fetch_row($res4);

$numstr=ceil($num[0]/10);
echo "<table><tr><td style=padding-left:30>страницы: ($numstr)</td>";
for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*10;
        if ($start==$s OR ($s==0 AND $i==1))
        $st="<a class=1 href=index.php?page=forum&s=$start><font color=#C1CACF>[$i]</font></a>";
        else $st="<a href=index.php?page=forum&s=$start><font color=#C1CACF>[$i]</font></a>";
        print "<td>".$st."</td> ";
}
?>
</tr>
</table>

В поиске это было много раз.  smile  

Автор: sunland 30.6.2006, 00:20
Все равно не могу соидинить эти два кода чтоб они работали.  smile 

Делаю, на другую страницу не переходит идет на стартовая, или же просто невыдаёт не каких результатов. smile 

Не мог бы кто-то мне помочь и соединить код который я писал раньше с кодом по разделению страниц?!

Зарание ОГРОМНОЕ спасибо. smile   

Автор: PARROT 30.6.2006, 09:20
Покажи код. 

Автор: sunland 1.7.2006, 19:34
Что не кто не может помочь?  smile  

Автор: vasac 1.7.2006, 19:43
sunland, издеваешься? 

Автор: HuKoLaU 2.7.2006, 00:20
Так и будет идти на первую страницу если ты оставишь свой первоночальный код без изменений. Поставь в запросе лимит вывода взависимости от страницы LIMIT $s, 10 

Автор: sunland 2.7.2006, 02:54
Вот код 
Код

} elseif(isset($sid)) {

       $qs = mysql_query("select * from $t_subcategory where id='$sid' order by name");
    $qsrow = @mysql_fetch_array($qs);
    $qc = mysql_query("select * from $t_category where id='".$qsrow["cid"]."' order by name");
    $qcrow = @mysql_fetch_array($qc);

    print "<div align=center>\n";
    print "<a href=\"index.php\" class=up>Home</a> » <a href=\"index.php?cid=".$qcrow["id"]."\"class=up>".$qcrow["name"]."</a> &#187 ".$qsrow["name"]."<br><br>\n";
    print "<table width=70% cellspacing=2 cellpadding=2 border=0>\n";

    $ql = mysql_query("select * from $t_links where sid='$sid' order by name");
    $total = mysql_num_rows($ql);

if (!isset($_GET['page'])) {$_GET['page'] = '1';} // Проверяем, введена-ли пользователем страница. Если нет, устанавливаем первую.
$to_page = 2; // Колличество записей на страницу.
$pages_links = 5; // Указываем кол-во страниц, которые будут отображаться в перечислении относительно текущей.

$p = ($_GET['page'] * $to_page) - $to_page; // Вычисляем стартовую запись.

$query = "SELECT COUNT(*) FROM xelinks"; // Узнаем кол-во записей в таблице.
$result = mysql_query($query);
$count = mysql_result($result,0,'COUNT(*)');
$pages = ceil($count / $to_page); // Вычисляем кол-во страниц.

if ($_GET['page'] > $pages) {
   header("Location: pages.php?page=".$pages);
} elseif($_GET['page'] < 1) {
   header("Location: pages.php?page=1");
}

if($total == 0) { print "<tr><td class='error'>No Sites are found in this Catergory.</td></tr>"; }
else {
        $query = "SELECT * FROM xelinks order by id desc LIMIT ".$p.",".$to_page; // Выбираем из таблицы указанное кол-во записей начиная со стартовой на текущей странице.
$result = mysql_query($query);

while ($row=mysql_fetch_array($result))
{
extract($row);
// extract the row values 
?>
<tr><td><a href=http://<?php echo "$url"; ?> target=_blank class="link"><?php echo "$name"; ?></a></td></tr>
<tr><td class="aboutlink"><?php echo "$description"; ?></td></tr>
<tr><td class="url"><?php echo "$url"; ?></td></tr>


<?php } ?>
</table>
<br>

<table align="center" width="80%" border="0">
<tr>
<td width=90%></td>
<td align="right">
<?
// Конец вывода записей.

// Навигация по списку
$pages_links_view_max = 0;
$pages_links_view_min = 0;

if ($pages - $_GET['page'] >= ($pages_links + 1)) {
   $to_max = $_GET['page'] + $pages_links;
   $pages_links_view_max = 1;
} else {
   $to_max = $pages;
}

// Вычесляем. Является ли текущая страница превышающей кол-во страниц, которые будут отображаться в перечислении относительно текущей
if ($_GET['page'] > ($pages_links + 1)) {
   $to_min = $_GET['page'] - $pages_links;
   $pages_links_view_min = 1;
} else {
   $to_min = 1;
}

if ($pages_links_view_min == 1) {
   echo ' <A href="?page=1"> First</A>';
}

if ($_GET['page'] > 1) {
   echo ' <A href="?page='.($_GET['page']-1).'"> &lt;&lt;</A>';
}

if ($pages_links_view_min == 1) {
   echo ' ...';
}

// Вычесляем. Является ли текущая страница меньше чем кол-во страниц минус кол-во страниц, которые будут отображаться в перечислении относительно текущей
for ($p = $to_min; $p <= $to_max; $p++) {
   if ($_GET['page'] == $p) {
       echo ' <B>['.$p.']</B>';
   } else {
       echo ' <A href="?page='.$p.'">['.$p.']</A>';
   }
}

if ($pages_links_view_max == 1) {
   echo ' ...';
}

if ($_GET['page'] < $pages) {
   echo '<A href="?page='.($_GET['page']+1).'"> &gt;&gt;</A>';
}

if ($pages_links_view_max == 1) {
   echo ' <A href="?page='.$pages.'"> Last ['.$pages.']</A>';
}
    

}

           print "</table>\n</div>\n";

}


Не могли бы сказать в сем проблема и Изминить её?

Вот ошибка http://www.xefus.net/ideas/xe-cat/index.php?sid=5. 

Автор: PARROT 2.7.2006, 18:41
первая ссылка твоя http://www.xefus.net/ideas/xe-cat/index.php?sid=5
вторая ссылка твоя http://www.xefus.net/ideas/xe-cat/index.php?page=2

Чуешь разницу? Куда делась твоя переменная sid=5 ?

Пропиши ссылки правильно и посчитай, это простая математика.  

Автор: sunland 2.7.2006, 19:40
Это я понял.

Можбыть просто малое знание php не дает мне создать правельный код.
 

Автор: PARROT 2.7.2006, 21:13
Этот код ты писал? Тут очень сложно проверять вслепую, нужна база. Ты сам проверь глазками, что и где у тебя, и исправляй ошибки.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)