Hỏi về phân trang cho trang danh mục

em đang bị vướng chỗ này quá. Em đã dùng _GET['category'] để lấy id danh mục
nhưng giờ em muốn phân trang cho trang danh mục này
dùng thêm _GET['page'] thì nó bị nhảy mất ?category
giờ em muốn làm ?category=id_danhmuc&page=
cảm ơn mọi người~
Mã:
                        <?php


                        if(!$_GET['category']){
                            echo "khong co gi";
                        }
                        else{
                            $category = $_GET['category'];
                            //$page = $_GET['page'];


                            
                        }
                        ?>


                        <?php


                        if(!$_GET['page']){
                            $page = 1;
                            
                            
                        }
                        else{
                            $page = $_GET['page'];
                        }
                        $max_result = 12;
                        $index_row=$page * $max_result - $max_result;
                        ?>






                        <?php


                        $sql = "SELECT * FROM sanpham WHERE id_danhmuc = '{$category}' LIMIT $index_row, $max_result";
                        $query=mysql_query($sql);
                        while($row=mysql_fetch_array($query)){


                            ?>
                            <li>
                                <a href="details.php?id=<?php echo $row['id_sanpham'] ?>"><img src="Images/<?php echo $row['img_sanpham']; ?>"/></a><br>
                                <?php echo $row['ten_sanpham']; ?><br>
                                <?php echo $row['gia_sanpham']; ?>
                                <span id="gia_sanpham" style="color: red;">VNĐ</span>
                            </li>
                            <?php }
                            ?>
                        </ul>
                        
                        <p id=paging><br></p>
                        <?php
                                            // Tinh tong so sanpham co trong CSDL
                        $total_row = mysql_num_rows(mysql_query("SELECT * FROM sanpham WHERE id_danhmuc = '{$category}'"));
                                            // Lam tron so trang co duoc dua vao tong so sanpham va so sanpham tren moi trang
                        $total_page = ceil($total_row/$max_result);
                        if(!$total_page)
                        {
                            echo 'Lỗi SQL: '.mysql_error();
                            echo "\r\n<br />";
                            echo 'SQL: '.$total_page;
                            exit;
                        }
                        // Khai bao bien danh sach so trang
                        $list_page = '';
                            // Tao nut Prev
                        $prev = $page - 1;
                        if($page > 1){
                            $list_page .= "<a href=".$_SERVER['PHP_SELF']."?page=$prev>Prev </a>";
                        }
                        // Liet ke danh sach so trang
                        for($i=1; $i<=$total_page; $i++){
                            if($page == $i){
                                $list_page .= "<b>$i </b>";
                            }
                            else{
                                $list_page .= "<a href=".$_SERVER['PHP_SELF']."?page=$i>".$i." </a>";
                            }
                        }
                        // Tao nut Next
                        $next = $page + 1;
                        if($page < $total_page){
                            $list_page .= "<a href=".$_SERVER['PHP_SELF']."?page=$next>Next</a>";
                        }
                        // Suat ra thanh phan trang
                        ?>
                        <p id=paging>
                            <?php
                            echo $list_page;
                            ?>
                        </p>
 
  • Chủ đề
    php
  • Mình chỉ thấy bạn viết một đống hỗn tạp, dấu ", ' bỏ linh tinh, chỗ thiếu chỗ thừa, đoạn tính số trang lấy kết quả hiển thị lại cho sau đoạn hiển thị trang, còn code bạn thiếu ?category khi request là hiển nhiên, chỗ đoạn hiển thị thanh page toolbar

    $list_page .= "<a href=".$_SERVER['PHP_SELF']."?page=$i>".$i." </a>"

    sửa

    $list_page .= "<a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$i}\">{$i}</a>";

    kết luận: học lại PHP + MySQL
     
    Mình chỉ thấy bạn viết một đống hỗn tạp, dấu ", ' bỏ linh tinh, chỗ thiếu chỗ thừa, đoạn tính số trang lấy kết quả hiển thị lại cho sau đoạn hiển thị trang, còn code bạn thiếu ?category khi request là hiển nhiên, chỗ đoạn hiển thị thanh page toolbar

    $list_page .= "<a href=".$_SERVER['PHP_SELF']."?page=$i>".$i." </a>"

    sửa

    $list_page .= "<a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$i}\">{$i}</a>";

    kết luận: học lại PHP + MySQL
    em cảm ơn ạ! Tại em cũng vừa mới học nên chưa được chuẩn. em cũng ko biết sửa lại sao cho chuẩn nữa
     
    Bạn nên học tuần tự

    1. HTML + CSS + JAVASCRIPT: web tĩnh
    2. PHP + MySQL: web động

    sau đó mới tiến hành áp dụng các kiến thức đã học project hoàn chỉnh

    xây dựng giao diện web với HTML + CSS + JAVASCRIPT
    xây dựng kịch bản xử lý dữ liệu PHP + MySQL
    ghép giao diện với kịch bản xử lý

    Bạn nên đọc các giáo trình tham khảo EBook Sử dụng PHP + MySQL thiết kế web động, [DHKHTN, SSDG] PHP + MySQL

    Nâng cao thì tìm hiểu các mô hình thiết kế web MVC, OOP (cách viết, sử dụng, xử lý truy cập các phương thức class ...)

    Còn sửa ra sao tùy vào nhu cầu các tính năng muốn có, kịch bản xử lý, lọc dữ liệu, mô hình cấu trúc website, mỗi người có cách sử khác nhau

    Chẳng hạn không xây dựng class xử lý riêng

    Mã:
    <?php
    $max_item = 12; //so luong san pham hien thi tren moi trang
    $show_page = 10; //so luong nut Page toi da hien thi tren thanh phan trang
    
    
    if(!isset($_REQUEST['category'])){ //khong gui danh muc
        echo '<div class="waring">Chua gui danh muc san pham</div>';
    } else {
        //lay du lieu duoc truyen
        $category = ($_REQUEST['category'] != "") ? $_REQUEST['category'] : 0;
        $page = ((isset($_REQUEST['page'])) && ($_REQUEST['page'] != ""))? $_REQUEST['page'] : 1;
        
        if(!preg_match("/\A\d{1,}\z/", $category) || !preg_match("/\A\d{1,}\z/", $page)){ //phong chong tan cong SQL injection
             echo '<div class="waring">Ban dang co gang tan cong SQL injection</div>';
        } else {
            
            //tinh so trang co the hien thi
            $sql = "SELECT *
                    FROM sanpham
                    WHERE id_danhmuc = '{$category}'";
            
            $all_item = mysql_query($sql) or die("<div class=\"waring\">Loi truy van danh sach san pham</div>");
            $num_item = mysql_num_rows($all_item);
            
            if($num_item == 0){ // kiem tra danh muc truy cap co san pham nao hay khong
                echo '<div class="message">Chua co san pham nao trong danh muc chi dinh</div>';
            } else {
                $max_page = ceil($num_item/$max_item);
                
                if (($page < 1) || ($page > $max_page)){ //kiem tra trang can hien thi co vuot qua gioi han so trang hay khong
                    echo '<div class="waring">Trang san pham khong ton tai</div>';
                } else {
                    $index = $page - 1;
                    $sql = "SELECT *
                            FROM sanpham
                            WHERE id_danhmuc = '{$category}'
                            LIMIT {$index}, {$max_item}";
                    $limit_item = mysql_query($sql) or die("<div class=\"waring\">Loi truy van phan trang san pham</div>");
                    
                    //hien thi danh sach san pham
                    echo '<div class="list-item"><ul>';
                    while($item = mysql_fetch_array($limit_item)){
                        echo <<<EOF
                        <li>
                            <div class="item-poster"><a href="details.php?id={$item['id_sanpham']}"><img src="images/{$item['img_sanpham']}" /></a></div>
                            <div class="item-label"><a href="details.php?id={$item['id_sanpham']}">{$item['ten_sanpham']}</a></div>
                            <div class="item-price">{$item['gia_sanpham']} VND<div>
                        </li>
    EOF;
                    }
                    echo '</ul></div>';
                    
                    //hien thi thanh phan trang
                    echo '<div class="pagebar"><ul>';
                        //hop Page
                        echo "<li>Page {$page} of {$max_page}</li>";
                        //nut First
                        if($max_page > $show_page){
                            echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page=1\">First</a></li>";
                        }
                        //nut Prev
                        if($page != 1){
                            $prev = $page - 1;
                            echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$prev}\">Prev</a></li>";
                        }
                        //nut Page
                        if($max_page > $show_page){
                            $limit_page = (($page + $show_page) > $max_page) ? $max_page : ($page + $show_page - 1);
                            for($i = $page; $i <= $limit_page; $i++){
                                echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$i}\">{$i}</a></li>";
                            }
                        } else {
                            for($i = 1; $i <= $max_page; $i++){
                                echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$i}\">{$i}</a></li>";
                            }
                        }
                        //nut Next
                        if($page != $max_page){
                            $next = $page + 1;
                            echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$next}\">Next</a></li>";
                        }
                        //nut First
                        if($max_page > $show_page){
                            echo "<li><a href=\"{$_SERVER['PHP_SELF']}?category={$category}&page={$max_page}\">Last</a></li>";
                        }
                    echo '</ul></div>';
                }
            }
        }
    }
    ?>
     
    $category = isset($_GET['category'])?$_GET['category']:'';
    $page = isset($_GET['page'])?$_GET['page']:'1';


    $max_result = 12;
    $index_row=$page * $max_result - $max_result;


    $sql = ($category !='')?"SELECT * FROM sanpham LIMIT $index_row, $max_result":"SELECT * FROM sanpham WHERE id_danhmuc = '{$category}' LIMIT $index_row, $max_result";
    $query=mysql_query($sql);
    while($row=mysql_fetch_array($query)){




    ?>
    <li>
    <a href="details.php?id=<?php echo $row['id_sanpham'] ?>"><img src="Images/<?php echo $row['img_sanpham']; ?>"/></a><br>
    <?php echo $row['ten_sanpham']; ?><br>
    <?php echo $row['gia_sanpham']; ?>
    <span id="gia_sanpham" style="color: red;">VNĐ</span>
    </li>
    <?php }
    ?>
    </ul>

    <p id=paging><br></p>
    <?php
    // Tinh tong so sanpham co trong CSDL
    $total_row = mysql_num_rows(mysql_query("SELECT * FROM sanpham WHERE id_danhmuc = '{$category}'"));
    // Lam tron so trang co duoc dua vao tong so sanpham va so sanpham tren moi trang
    $total_page = ceil($total_row/$max_result);
    if(!$total_page)
    {
    echo 'Lỗi SQL: '.mysql_error();
    echo "\r\n<br />";
    echo 'SQL: '.$total_page;
    exit;
    }
    // Khai bao bien danh sach so trang
    $list_page = '';
    // Tao nut Prev
    $prev = $page - 1;
    $strUrl = ($category=='')?$_SERVER['PHP_SELF'].'?':'?category='.$category.'&';
    if($page > 1){
    $list_page .= "<a href=".$strUrl."page=$prev>Prev </a>";
    }
    // Liet ke danh sach so trang
    for($i=1; $i<=$total_page; $i++){
    if($page == $i){
    $list_page .= "<b>$i </b>";
    }
    else{
    $list_page .= "<a href=".$strUrl."page=$i>".$i." </a>";
    }
    }
    // Tao nut Next
    $next = $page + 1;
    if($page < $total_page){
    $list_page .= "<a href=".$strUrl."page=$next>Next</a>";
    }
    // Suat ra thanh phan trang
    ?>
    <p id=paging>
    <?php
    echo $list_page;
    ?>
    </p>
     

    Thống kê

    Chủ đề
    100,759
    Bài viết
    467,597
    Thành viên
    339,858
    Thành viên mới nhất
    ffbbtopnhacai
    Top