Пагинация $ _POST загружается на одной странице?

1

Моя проблема заключается в том, чтобы правильная разбивка на страницы.

Поскольку у меня есть $ page = $ POST _ ["zain"] для получения записей, существует проблема с разбиением на страницы, что он показывает только результат первой страницы.

Вот мой код



         <!DOCTYPE html>
    <html>
    <head>


    </head>
    <body>

    <form action="zain.php" method="post">
    Topic: <input type="text" name="topic"><br />
    <br />
    Name: <input type="text" name="name"><br /><br />
    Attendance: <input type="text" name="attendance"><br />
    <br />
    <input type="reset" name="reset">
    <input type="submit" id = "go" name="submit" value="Go">
    </form>

    <?php

    $user = 'root';
    $password = 'zz224466';
    $db = 'Zain';

    // Create connection
    $conn = mysqli_connect('localhost', $user, $password, $db);

    // Check connection
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "";

        mysqli_select_db($conn, "zain");
        //$sql = "CREATE TABLE Lectures(Topic varchar(20), Name varchar(20), Attendence int)";
    $sqli = "INSERT INTO lectures(Topic , Name , Attendence) VALUES('$_POST[topic]','$_POST[name]','$_POST[attendance]')";
        mysqli_query($conn, $sqli);


    ////////////////////////// For print DATABASE on the screen using PAGINATION ////////////////////////////////////////

            mysqli_select_db($conn, "zain");
            if(isset($_GET['page'])){
            if($page=="" || $page=="1")
            {
                $page1 = 0;
            }
    else
    {
        $page1 = ($page*5)-5;
    }

} $ dataBase = "SELECT * FROM leurs limit $ page1,5";

            $print = mysqli_query($conn, $dataBase);


            while ($record = mysqli_fetch_array($print))
            {
                echo $record['Topic'];
                echo "</br>";
            }



    $selectDatabase = "SELECT * FROM lectures";
     $res1 = mysqli_query($conn, $selectDatabase);
    $countRow = mysqli_num_rows($res1);
    $a = $countRow/5;
    $a = ceil($a);
    echo "<br>" . $a;
    echo "</br> </br>";
    for($b=1; $b<=$a; $b++)
    {
        ?><a href ="zain.php?page=<?php echo $b; ?>" style="text-decoration: none"><?php echo $b . " ";?></a><?php
    }
    mysqli_close($conn);
    ?>



    </body>
    </html>
  • 0
    Вам также понадобится эта переменная $POST_["zain"] на следующих страницах. лучше использовать переменные $_GET
  • 0
    Должен ли я создавать новые страницы?
Показать ещё 4 комментария
Теги:
pagination

1 ответ

1
Лучший ответ

в верхней части страницы.

$zain = !empty($_POST["zain"])?$_POST["zain"]:(!empty($_GET["zain"])?$_GET["zain"]:false);
if(!$zain) die("zain is empty");

затем замените все остальные $_POST["zain"] на $zain

В части ссылки

for($b=1; $b<=$a; $b++)
{
    ?><a href ="zain.php?page=<?php echo $b; ?>&zain=<?php echo $zain;?>" style="text-decoration: none"><?php echo $b . " ";?></a><?php
}
  • 0
    Он имеет проблему только со page внутри GET if (isset ($ _ GET ['page'])). Ошибка: Undefined index: page in C:\xampp\htdocs\zain.php Не могли бы вы исправить это
  • 0
    неопределенная страница индекса

Ещё вопросы

Сообщество Overcoder
Наверх
Меню