ФорумПрограммированиеPHP для идиотов → Помогите со страницами, сам не смог.

Помогите со страницами, сам не смог.

  • Gektor

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 22 февраля 2009 г. 18:05

    Помогите пожалуйста разобраться в системе вывода информации из таблиц и разбиванием ее на страницы. Вот написал код, но почему то не переходит на вторую и следующие страницы. Можете исправить ошибку и обьяснить в чем?

    <?php

    function pages($page, $pages_count)
    {
    for ($j = 1; $j <= $pages_count; $j++)
    {
    // Вывод ссылки
    if ($j == $page) {
    echo &#39; <a style=&quot;color: #808000;&quot; ><b>&#39;.$j.&#39;</b></a> &#39;;
    } else {
    echo &#39; <a style=&quot;color: #808000;&quot; href=index.php?cwar=news&amp;#38;page=&#39;.$j.&#39;>&#39;.$j.&#39;</a> &#39;;
    }
    // Выводим разделитель после ссылки, кроме последней
    // например, вставить &quot;|&quot; между ссылками
    if ($j != $pages_count) echo &#39; &#39;;
    }
    return true;
    }


    function news () {
    $perpage = 10; // Количество отображаемых данных из БД

    if (empty($_get[&#39;page&#39;]) || ($_get[&#39;page&#39;] <= 0)) {
    $page = 1;
    } else {
    $page = (int) $_get[&#39;page&#39;]; // Считывание текущей страницы
    }

    $count = mysql_numrows(mysql_query(&#39;select * from news&#39;)) or die(&#39;error! Записей не найдено!&#39;);
    $pages_count = ceil($count / $perpage); // Количество страниц

    // Если номер страницы оказался больше количества страниц
    if ($page > $pages_count) $page = $pages_count;
    $start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

    // Вызов функции, для вывода ссылок на экран
    pages($page, $pages_count);

    // Вывод информации из базы данных
    $result = mysql_query(&#39;select * from news ORDER BY id DESC limit &#39;.$start_pos.&#39;, &#39;.$perpage) or die(&#39;error!&#39;);
    while ($row = mysql_fetch_array($result)) {

    $n_id = $row[&#39;id&#39;];
    $clicks = &quot;Просмотров: &quot;.$row[&#39;clicks&#39;].&quot;&quot;;
    $title = $row[&#39;title&#39;];
    $date = $row[&#39;date&#39;];
    $stext = $row[&#39;stext&#39;];
    $text = $row[&#39;text&#39;];
    $rating = $row[&#39;rating&#39;];


    $cat1 = mysql_query(&quot;SELECT * FROM news_cats WHERE cat_id = &#39;&quot;.$row[&#39;category&#39;].&quot;&#39;&quot;);
    $cat = mysql_fetch_array($cat1);

    $at = mysql_query(&quot;SELECT * FROM users WHERE id = &#39;&quot;.$row[author].&quot;&#39;&quot;);
    while ($atr = mysql_fetch_array($at)) {


    $id = $atr[&#39;id&#39;];
    $author = &quot;Автор: <a href=&#39;index.php?cwar=user&amp;#38;id=&quot;.$id.&quot;&#39;>&quot;.$atr[&#39;login&#39;].&quot;</a> &quot;;

    }

    $itemID = $n_id;
    $type = &#39;news&#39;;
    $link = &quot;?cwar=news&amp;#38;op=show&amp;#38;id=&quot;.$_GET[&#39;id&#39;].&quot;&quot;;
    $comnum = mysql_query(&quot;SELECT count(id) as num FROM comments WHERE type= &#39;&quot;.$type.&quot;&#39; AND itemID = &quot;.$itemID.&quot;&quot;) or die(mysql_error());
    $comnum = mysql_fetch_array($comnum);
    $cnum = $comnum[&#39;num&#39;];

    echo &quot;<table border= &#39;1 &#39; width= &#39;98% &#39; style=&#39;border-collapse: collapse&#39; collspan&#39;2&#39;>
    <tr>
    <td background= &#39;http://cwar.lv/images/bg-bubplastic-h-blue.gif &#39; width= &#39;100% &#39; colspan= &#39;2 &#39; height= &#39;25 &#39; class=&#39;title&#39;>
    <img src=&#39;&quot;.$cat[&#39;pic&#39;]. &quot;&#39;> <b>$title </b> (&quot;.$cnum.&quot;)</td>
    </tr>
    <tr>
    <td bgcolor= &#39;#e2e2e2 &#39; width= &#39;98% &#39; colspan= &#39;2 &#39; class= &#39;htd-text&#39; >
    <table width= &#39;99% &#39;>
    <tr><td>$stext</tr></td></table></td>
    </tr>
    <tr bgcolor= &#39;#e2e2e2 &#39;>
    <td width= &#39;75% &#39; class= &#39;htd-text&#39; >
    <center>$clicks | $author | $date | Рейтинг: $rating</center></td>
    <td width= &#39;15% &#39; class= &#39;htd-text&#39; ><center>
    <b><a href=&#39;index.php?cwar=news&amp;#38;op=show&amp;#38;id=&quot;.$row[&#39;id&#39;].&quot;&#39;>Подробнее</a></b></center></td>
    </tr>
    </table>
    <br>&quot;;
    }


    $res = mysql_query(&quot;SELECT * FROM news ORDER BY id DESC&quot;);
    while ($row = mysql_fetch_array($res)) {



    } }

    function plus() {
    global $userID;
    $id = $_GET[&#39;id&#39;];
    $type = $_GET[&#39;cwar&#39;];
    mysql_query(&quot;INSERT INTO rating (userID, itemID, type) VALUES (&#39;$userID&#39;, &#39;$id&#39;, &#39;$type&#39;)&quot;);
    mysql_query(&quot;UPDATE news SET rating=rating+1 WHERE id = &#39;$id&#39;&quot;);

    mysql_query(&quot;UPDATE news SET plus=plus+1 WHERE id = &#39;$id&#39;&quot;);

    header(&quot;Location: ?cwar=news&amp;#38;op=show&amp;#38;id=&quot;.$id.&quot; &quot;);

    }


    function minus() {
    global $userID;
    $id = $_GET[&#39;id&#39;];

    mysql_query(&quot;INSERT INTO rating (userID, itemID, type) VALUES (&#39;$userID&#39;, &#39;$id&#39;, &#39;ne&#39;)&quot;);
    mysql_query(&quot;UPDATE news SET rating=rating-1 WHERE id = &#39;$id&#39;&quot;);
    mysql_query(&quot;UPDATE news SET minus=minus+1 WHERE id = &#39;$id&#39;&quot;);

    header(&quot;Location: ?cwar=news&amp;#38;op=show&amp;#38;id=&quot;.$id.&quot; &quot;);

    }

    function show () {
    global $userID;

    $itemID = $_GET[&#39;id&#39;];
    $type = $_GET[&#39;cwar&#39;];
    $link = &quot;?cwar=news&amp;#38;op=show&amp;#38;id=&quot;.$_GET[&#39;id&#39;].&quot;&quot;;

    $comnum = mysql_query(&quot;SELECT count(id) as num FROM comments WHERE type= &#39;&quot;.$type.&quot;&#39; AND itemID = &quot;.$itemID.&quot;&quot;) or die(mysql_error());
    $comnum = mysql_fetch_array($comnum);
    $cnum = $comnum[&#39;num&#39;];


    mysql_query(&quot;UPDATE news SET clicks=clicks+1 WHERE id = &#39;&quot;.$_GET[&#39;id&#39;].&quot;&#39;&quot;);

    $res = mysql_query(&quot;SELECT * FROM news WHERE id = &#39;&quot;.$_GET[&#39;id&#39;].&quot;&#39; ORDER BY id DESC&quot;);

    while ($row = mysql_fetch_array($res)) {


    $clicks = &quot;Просмотров: &quot;.$row[&#39;clicks&#39;].&quot;&quot;;
    $title = $row[&#39;title&#39;];
    $date = $row[&#39;date&#39;];
    $text = $row[&#39;text&#39;];
    $stext = $row[&#39;stext&#39;];
    $cat1 = mysql_query(&quot;SELECT * FROM news_cats WHERE cat_id = &#39;&quot;.$row[&#39;category&#39;].&quot;&#39;&quot;);
    $cat = mysql_fetch_array($cat1);

    $pic = $cat[&#39;pic&#39;];

    $at = mysql_query(&quot;SELECT * FROM users WHERE id = &#39;&quot;.$row[author].&quot;&#39;&quot;);
    while ($atr = mysql_fetch_array($at)) {

    $rating = $row[&#39;rating&#39;];

    if ($rating >0) {
    $rating = &quot;<font color=&#39;green&#39;> <b>$rating</b></font>&quot;;

    } elseif ($rating <0) {
    $rating = &quot;<font color=&#39;red&#39;> <b>$rating</b></font>&quot;;
    } else {

    $rating = &quot;<font color=&#39;blue&#39;> <b>$rating</b></font>&quot;;
    }

    $type = $_GET[&#39;cwar&#39;];
    $id = $atr[&#39;id&#39;];
    $author = &quot;Автор: <a href=&#39;index.php?cwar=user&amp;#38;id=&quot;.$id.&quot;&#39;>&quot;.$atr[&#39;login&#39;].&quot;</a>&quot;;
    $plus =&#39;<font color=&quot;green&quot;>+</font>&#39;;
    $minus =&#39;<font color=&quot;red&quot;>-</font>&#39;;

    $check = mysql_query(&quot;SELECT * FROM rating WHERE userID = &#39;&quot;.$userID.&quot;&#39; AND itemID = &#39;&quot;.$_GET[&#39;id&#39;].&quot;&#39; AND type = &#39;&quot;.$type.&quot;&#39;&quot;);

    if (mysql_num_rows($check) > 0) {


    $vote = &#39;&#39;.$rating.&#39;&#39;;

    } else {

    $vote = &#39; <a href=&quot;?cwar=news&amp;#38;op=plus&amp;#38;id=&#39;.$_GET[&#39;id&#39;].&#39;&quot;>&#39;.$plus.&#39;</a> &#39;.$rating.&#39; <a href=&quot;?cwar=news&amp;#38;op=minus&amp;#38;id=&#39;.$_GET[&#39;id&#39;].&#39;&quot;>&#39;.$minus.&#39;</a>&#39;;

    }

    }



    echo &quot;<table border= &#39;1 &#39; width= &#39;98% &#39; style=&#39;border-collapse: collapse&#39; collspan&#39;2&#39;> &quot;;
    echo &quot;<tr>
    <td background= &#39;http://cwar.lv/images/bg-bubplastic-h-blue.gif &#39; width= &#39;100% &#39; height= &#39;25 &#39; class=&#39;title&#39;>
    <img src=&#39;&quot;.$pic.&quot;&#39;> <b>$title</b> (&quot;.$cnum.&quot;)</td>
    </tr>
    <tr>
    <td bgcolor= &#39;#e2e2e2 &#39; width= &#39;98% &#39; class= &#39;htd-text&#39; >
    <table width= &#39;99% &#39;>
    <tr><td>$stext <br><br> $text</tr></td></table></td>
    </tr>
    <tr bgcolor= &#39;#e2e2e2 &#39;>
    <td width= &#39;75% &#39; class= &#39;htd-text&#39; >
    <center>$clicks | $author | $date | Рейтинг: $vote</center></td>
    </tr>
    &quot;;
    echo &quot;</table>
    <br>&quot;;

    }



    include &quot;functions/comments.php&quot;;
    }

    switch($op) {

    default:
    news();
    break;

    case &quot;show&quot;:
    show();
    break;

    case &quot;plus&quot;:
    plus();
    break;



    case &quot;minus&quot;:
    minus();
    break;

    }






    ?>
  • }/{EHR

    Сообщения: ? Репутация: N Группа: Адекваты

    Spritz 22 февраля 2009 г. 23:40, спустя 5 часов 34 минуты 57 секунд

    Многабукф… Нет желания даже кратко разобраться… Но на этом сайте в разделе статьи примеры глянь…
  • Batler

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 23 февраля 2009 г. 0:59, спустя 1 час 19 минут 19 секунд

    Мне почему-то url не нравится в 11 строке, там не должно быть просто &amp;?
  • Gektor

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 23 февраля 2009 г. 1:43, спустя 44 минуты 26 секунд

    там просто &amp;. так редактор перенес. Весь код даже не требуется смотреть, походу моя ошибка в 11 строке, но я не понимаю в чем она…
  • phpdude

    Сообщения: 26615 Репутация: N Группа: в ухо

    Spritz 23 февраля 2009 г. 5:21, спустя 3 часа 37 минут 48 секунд

    function news () {
    $perpage = 10; // Количество отображаемых данных из БД

    if (empty($_get[&#39;page&#39;]) || ($_get[&#39;page&#39;] <= 0)) {
    $page = 1;
    } else {
    $page = (int) $_get[&#39;page&#39;]; // Считывание текущей страницы
    }



    чо еще за $_get ? мб имелось ввиду $_GET ?
    Сапожник без сапог
  • Gektor

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 23 февраля 2009 г. 6:04, спустя 43 минуты 11 секунд

    аааа псц помогло, спс…
  • phpdude

    Сообщения: 26615 Репутация: N Группа: в ухо

    Spritz 23 февраля 2009 г. 6:09, спустя 4 минуты 51 секунду

    не куда)
    Сапожник без сапог
  • krasun

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 23 февраля 2009 г. 10:06, спустя 3 часа 57 минут 2 секунды


    function news () {
    $perpage = 10; // Количество отображаемых данных из БД

    if (empty($_get[&#39;page&#39;]) || ($_get[&#39;page&#39;] <= 0)) {
    $page = 1;
    } else {
    $page = (int) $_get[&#39;page&#39;]; // Считывание текущей страницы
    }



    чо еще за $_get ? мб имелось ввиду $_GET ?


    Да.
  • phpdude

    Сообщения: 26615 Репутация: N Группа: в ухо

    Spritz 23 февраля 2009 г. 10:12, спустя 5 минут 19 секунд

    krasun, спасибо, я сам не понял. тупой :( спасибо что объяснил мне)))))))))))
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!