首页 > 解决方案 > 获取sql表数据,保存在一个php文件中的数组变量中,并显示在预先创建的表下的另一个php文件中

问题描述

这个问题很拗口,所以我会直接解释。我有两个 php 文件,index.php 和 server.php。

在 index.php 中是我创建的表。目前我从数据库中提取数据并将其显示在表格中。一切正常。下面的代码:

索引.php:

<table class="w3-table-all w3-responsive w3-hoverable">
<tr class="w3-grey">
  <th><b>Project Name</b></th>
  <th><b>Project Number</b></th>
  <th><b>Description</b></th>
  <th><b>Area</b></th>
  <th><b>Project Leader Name</b></th>
  <th><b>Project Leader Email</b></th>
  <th><b>Project Leader Number</b></th>
  <th><b>Project Manager Name</b></th>
  <th><b>Project Manager Email</b></th>
  <th><b>Project Manager Number</b></th>
  <th><b></b>Project Team</th>
  <th><b></b>Project Status</th>
</tr>
<tr>
<?php
 $servername = "localhost";
 $username = "root";
 $password = "";
 $dbname = "db";

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

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

$sql = "SELECT pname, pnumber, description, area, plname, plemail, 
                plnumber, pmname, pmemail, pmnumber, pteam, status 
        FROM data 
        WHERE category='Radio'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
     while($row = $result->fetch_assoc()) {
        echo "<td>" . $row["pname"]. "</td><td>" . $row["pnumber"]. "</td><td>" . $row["description"] . "</td><td>" . $row["area"] . "</td><td>" . $row["plname"] . "</td><td>"
         . $row["plemail"] . "</td><td>" . $row["plnumber"] . "</td><td>" . $row["pmname"] . "</td><td>" . $row["pmemail"] . "</td><td>" . $row["pmnumber"] . "</td><td>"
         . $row["pteam"] . "</td><td>" . $row["status"] . "</td><td>";
    }
} else {
    echo "0 results";
}

$conn->close();
?>
</tr>
</table>

我想要的是从数据库中提取的数据和保存在 server.php 中的变量中的信息,然后我可以再次访问并在 index.php 的表下正确显示。

到目前为止,我在 server.php 中尝试过的内容如下:

服务器.php:

//Get variable from JS in index.php
if (isset($_POST['Category'])) {
    $gotcategory = $_POST['Category'];
    //$_SESSION['success'] = "Category has been set to $gotcategory"; //Debug 
    display for checking category variable

    // Select project information from database to display in table format
    $db = new mysqli('localhost', 'root', '', 'db');
    $sql = "SELECT pname, pnumber, description, area, plname, plemail, plnumber, pmname, pmemail, pmnumber, pteam, status FROM data WHERE category='$gotcategory'";
    $result = $conn->query($sql);
    $all_data = array();

    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
            $toadd = "<td>" . $row["pname"]. "</td><td>" . $row["pnumber"]. "</td><td>" . $row["description"] . "</td><td>" . $row["area"] . "</td><td>" . $row["plname"] . "</td><td>"
             . $row["plemail"] . "</td><td>" . $row["plnumber"] . "</td><td>" . $row["pmname"] . "</td><td>" . $row["pmemail"] . "</td><td>" . $row["pmnumber"] . "</td><td>"
             . $row["pteam"] . "</td><td>" . $row["status"] . "</td><td>";
            $all_data[] = $toadd;
        }
        $_SESSION['Data'] = $alldata;
    } else {
        $_SESSION['Data'] = "No data";
    }

回到 index.php 中:

<table class="w3-table-all w3-responsive w3-hoverable">
<tr class="w3-grey">
  <th><b>Project Name</b></th>
  <th><b>Project Number</b></th>
  <th><b>Description</b></th>
  <th><b>Area</b></th>
  <th><b>Project Leader Name</b></th>
  <th><b>Project Leader Email</b></th>
  <th><b>Project Leader Number</b></th>
  <th><b>Project Manager Name</b></th>
  <th><b>Project Manager Email</b></th>
  <th><b>Project Manager Number</b></th>
  <th><b></b>Project Team</th>
  <th><b></b>Project Status</th>
  </tr>
  <tr>
  <td><?php echo ($_SESSION['Data'])?></td>
</tr>
</table>

出于某种原因,这似乎不起作用。我没有得到任何输出,甚至没有“无数据”。

我知道这是一堵巨大的文字墙,但对此的任何帮助将不胜感激。

谢谢

斯莱姆

标签: phphtmlmysql

解决方案


推荐阅读