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

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

  • Gektor

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

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

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

    <?php

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


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

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

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

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

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

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

    $n_id = $row['id'];
    $clicks = "Просмотров: ".$row['clicks']."";
    $title = $row['title'];
    $date = $row['date'];
    $stext = $row['stext'];
    $text = $row['text'];
    $rating = $row['rating'];


    $cat1 = mysql_query("SELECT * FROM news_cats WHERE cat_id = '".$row['category']."'");
    $cat = mysql_fetch_array($cat1);

    $at = mysql_query("SELECT * FROM users WHERE id = '".$row[author]."'");
    while ($atr = mysql_fetch_array($at)) {


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

    }

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

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


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



    } }

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

    mysql_query("UPDATE news SET plus=plus+1 WHERE id = '$id'");

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

    }


    function minus() {
    global $userID;
    $id = $_GET['id'];

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

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

    }

    function show () {
    global $userID;

    $itemID = $_GET['id'];
    $type = $_GET['cwar'];
    $link = "?cwar=news&#38;op=show&#38;id=".$_GET['id']."";

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


    mysql_query("UPDATE news SET clicks=clicks+1 WHERE id = '".$_GET['id']."'");

    $res = mysql_query("SELECT * FROM news WHERE id = '".$_GET['id']."' ORDER BY id DESC");

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


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

    $pic = $cat['pic'];

    $at = mysql_query("SELECT * FROM users WHERE id = '".$row[author]."'");
    while ($atr = mysql_fetch_array($at)) {

    $rating = $row['rating'];

    if ($rating >0) {
    $rating = "<font color='green'> <b>$rating</b></font>";

    } elseif ($rating <0) {
    $rating = "<font color='red'> <b>$rating</b></font>";
    } else {

    $rating = "<font color='blue'> <b>$rating</b></font>";
    }

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

    $check = mysql_query("SELECT * FROM rating WHERE userID = '".$userID."' AND itemID = '".$_GET['id']."' AND type = '".$type."'");

    if (mysql_num_rows($check) > 0) {


    $vote = ''.$rating.'';

    } else {

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

    }

    }



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

    }



    include "functions/comments.php";
    }

    switch($op) {

    default:
    news();
    break;

    case "show":
    show();
    break;

    case "plus":
    plus();
    break;



    case "minus":
    minus();
    break;

    }






    ?>
  • }/{EHR

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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


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

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



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


    Да.
  • phpdude

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

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

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

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