首页 > 解决方案 > 使用 php 和 MySQL 创建动态页面

问题描述

我正在使用 mySQL 数据库中的“donemler”表在 main.php 中创建一个链接列表,并希望创建一个页面来显示“sikkeler”表中的数据(该表有一个外键 donemID,用作两者之间的关系表),因为用户单击它。(data.php 是 index.php 的一部分,它是一个无限滚动页面)

在这里,我尝试$row["donemID"]使用 index.php 中的 GET 方法 调用,$k=$_GET['donemID']但没有成功。

我也尝试使用 SESSIONS 方法,将“添加$_SESSION['donemID']=$row$row["donemID"]到 main.php

并在 index.php 中将其调用为 $k=$_SESSION['donemID']

但它也没有用。

我想学习如何在 php 中创建页面并显示相关数据。

提前致谢!

主文件

<?php
require_once "config.php";

$sql = $conn->query("SELECT * FROM donemler ORDER BY donemID");

if ($sql->num_rows > 0) {
// output data of each row
while($row = $sql->fetch_assoc()) {

echo "<tr><td><a href='index.php?devletID=".$row["devletID"]."&donemID=".$row["donemID"]."'>" .$row["donemler"]. "</a></td></tr>";
}
} else {
echo "0 results";
}
$conn->close();
?>

索引.php

<script type="text/javascript">

        var start = 0;
        var limit = 20;
        var reachedMax = false;
        var dnmID = $_GET("donemID");

        $(window).scroll(function () {
            if ($(window).scrollTop() == $(document).height() - $(window).height() )

                getData();
        });

        $(document).ready(function () {
           getData();
        });

        function getData() {
            if (reachedMax)
                return;

            $.ajax({
               url: 'data.php',
               method: 'POST',
                dataType: 'text',
               data: {
                   getData: 1,
                   start: start,
                   limit: limit,
                   dnmID: dnmID,
               },
               success: function(response) {
                    if (response == "reachedMax")
                        reachedMax = true;
                    else {
                        start += limit;
                        $(".results").append(response);
                    }
                }
            });
        }
    </script>

数据.php

<?php

if (isset($_POST['getData']) ) {

    $conn = new mysqli('localhost', 'usrnm', 'pss', 'db');

    $dnmID = $conn->real_escape_string($_POST['dnmID']);
    $start = $conn->real_escape_string($_POST['start']);
    $limit = $conn->real_escape_string($_POST['limit']);

    $sql = $conn->query("SELECT * FROM sikkeler WHERE donemID='$dnmID' ORDER BY kayit_no DESC LIMIT $start, $limit");
    if ($sql->num_rows > 0) {
        $response = "";

        while($data = $sql->fetch_array()) {
            $response .= '


<tr>
           <td>ICD#'.$data['kayit_no'].'</td>
           <td>'.$data['donemi'].'</td>
           <td><img src="coin_images/'.$data['resim'].'" border="2" width="200px" /></td>
           <td>'.$data['darp'].'</td>
           <td>'.$data['tarih'].'</td>
           <td>'.$data['birim'].'</td>
           <td>'.$data['agirlik'].'</td>
           <td>'.$data['cap'].'</td>
           <td>'.$data['tip'].'</td>
           <td>'.$data['reference'].'</td>


            </tr>
            ';
        }

        exit($response);
    } else
        exit('reachedMax');
}

?>

标签: phpmysqldynamic

解决方案


您正在检查两种不同的请求方法:

  1. $_POST['getData']
  2. $k=$_GET['donemID']

由于您使用的是查询字符串,因此它是一个GET方法来检查。没有这样的变量,即getData onmain.php


推荐阅读