如何在一定数量的页面上从数据库输出所选数据。

例如,我希望每页20个结果,它会自动添加所需的额外页面(有点像google搜索页面,但因为我从数据库中获取了所有内容,所以无需搜索)。

抱歉,提供了错误的解释以及缩进的代码,对于stackoverflow来说是新的。我尝试过仅放置php,页面的其余部分不完整,或者我删除了不必要的代码,还可以随时进行改进。

目前,我只是使用非常简单的方法将所有数据调用到一页上


    <?php
    session_start();
    if(isset($_POST['logout'])) {
    unset($_SESSION['Username']);
    session_destroy();
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <title>Backend</title>
    <link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div class="" style="min-width: 1024px; max-width: 1920px; margin: 0 auto; min-height: 1280px; max-height: 1080px;">

    <?php
    if (isset ($_SESSION['Username']))
    {
    ?>

    <button onclick="location.href = 'logout.php';">Logout</button>



    <?php
    if (isset ($_SESSION['Username']))
    {
    echo "";

    $servername = "localhost";
    $username = "root";
    $password = "root";
    $dbname = "request";


    $conn = new mysqli($servername, $username, $password, $dbname);

    if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
    }




    $sql = "SELECT * FROM request";
    $result = $conn->query($sql);


   $sql = "SELECT * FROM request ORDER BY id DESC";
   $result = $conn->query($sql);

   if (mysqli_num_rows($result) > 0) {
        while($row = mysqli_fetch_assoc($result)) {

    if (isset ($_SESSION['Username']))
    {
    ?>


        <div align="center">
       <div class="requests">
       <p><?php echo $row["Name"]; ?></p>

        <p><?php echo $row["Number"]; ?></p>
        <p><?php echo $row["Song"]; ?></p>
        </div>

    </div>





    <?php
        }else{
            header("Location: index.php");
        }
        }
    } else {
        echo "0 requests";
    }
    }
    mysqli_close($conn);
    ?>

最佳答案

让我们看一下PHP中的分页示例。在此之前,我们需要了解什么是分页。结果分页非常简单。

我们在某个数据库表上进行搜索,并根据搜索结果将记录数除以要在每页上显示的特定数。
相关:PHP和MVC中的数据分页

例如,总共有200条记录,而我们希望每页显示20条记录,那么不久我们将有200/20 = 10页。简单吧?好吧,然后去看代码。

首先连接到MySQL:

<?php
$conn = mysql_connect("host","user","pass");
$db = mysql_select_db("database");
?>


现在让我们创建应该执行的SQL子句:

<?php
$query = "SELECT * FROM TableName";
?>


让我们开始工作...指定每页显示的记录总数:

<?php
$total_reg = "10"; // number of records per page
?>


如果未指定页面,则变量“ page”的值为1,这将避免显示起始页面0:

  <?php
    $page=$_GET['page'];
    if (!$page) {
    $pc = "1";
    } else {
    $pc = $page;
    }
    ?>


让我们确定有限搜索的初始值:

<?php
$begin = $pc - 1;
$begin = $begin * $total_reg;
?>


让我们选择数据并显示分页:

<?php
$limit = mysql_query("$query LIMIT $begin,$total_reg");
$all = mysql_query("$query");

$tr = mysql_num_rows($all); // checks the total number of records
$tp = $tr / $total_reg; // checks the total number of pages

// let's create visualization
while ($dados = mysql_fetch_array($limit)) {
$name = $data["name"];
echo "Name: $name<br>";
}

// now let's create the "Previous and next"
$previous = $pc -1;
$next = $pc +1;
if ($pc>1) {
echo " <a href='?page=$previous'><- Previous</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?page=$next'>Next -></a>";
}
?>


准备好了,您在PHP中的分页已创建!

关于php - 在多个页面上输出数据库结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49465447/

10-14 15:22
查看更多