php - 在 PHP 页面上获取 SQL ID 并将其传递给另一个 PHP 页面

标签 php mysql

谁能帮我从 SQL 中获取 ID 变量并将其发送到另一个 PHP 页面? index.php 输出:(图片 1) enter image description here

checks.php 输出:(Image2) enter image description here

我需要完成的是: 每当我在 index.php 页面中的状态字段下单击“OK”或“NOK”时,我都需要它将我带到另一个名为 checks.php 的 PHP 页面并显示给我我单击的行的 ID

因此,例如,在 Image1(即 index.php 页面)上,如果我单击 OK 状态列下的 ID=2,我想将这个 ID 放入变量并将其传递给下一页 checks.php 以仅显示具有 ID=2< 的行 而不是表中的所有 ID

这是我的 index.php 代码

<?php
    require_once('connection.php');
    $result = $conn->prepare("SELECT * FROM report");
    $result->execute();
    for($i=0; $row = $result->fetch(); $i++){
?>
    <tr>
        <td><label><?php echo $row['ID']; ?></label></td>
        <td><label><?php echo $row['ElapsedTime']; ?></label></td>
        <td><label><?php echo $row['Computer']; ?></label></td>
        <td><label><?php echo $row['Manufacturer']; ?></label></td>
        <td><label><?php echo $row['ModelName']; ?></label></td>
        <td><label><?php echo $row['UserType']; ?></label></td>
        <td><label><?php echo $row['UserName']; ?></label></td>
        <td><label><a href='checks.php?id=". urlencode($row['ID']) ."'><?php echo $row['Status']; ?></a></label></td>
    </tr>
    <?php } ?>

这是我的 checks.php 代码

<?php
    require_once('connection.php');
    $id = $_GET['id'];
    $result = $conn->prepare("SELECT * FROM checks,report where checks.ID = report.ID and checks.ID = $id");
    $result->execute();
    for($i=0; $row = $result->fetch(); $i++){
?>
    <tr>
        <td><label><?php echo $row['ID']; ?></label></td>
        <td><label><?php echo $row['WiFi']; ?></label></td>
        <td><label><?php echo $row['Printers']; ?></label></td>
        <td><label><?php echo $row['Notepad']; ?></label></td>
    </tr>
    <?php } ?>

如果我手动设置ID 比如http://localhost/checks.php?id=2 , 效果很好

最佳答案

你的问题是最后一个 td你的 HTML 代码行

<td><label><a href='checks.php?id=". urlencode($row['ID']) ."'><?php echo $row['Status']; ?></a></label></td>

如您所见,您设置了 hrefa手动标记并尝试添加您的 PHP 变量 $row['ID']给它。然而,您在此之前的几行关闭了 PHP 上下文,因此您处于 HTML 上下文中,您无法访问您的 PHP 变量。

解决方案是再次打开 PHP 标记,就像您之后使用 $row['Status'] 所做的那样。 .您也不需要使用 urlencode , 因为 ID是数字,所以无论如何都不会转换。

<td><label><a href='checks.php?id=<?= $row['ID'] ?>'><?= $row['Status'] ?></a></label></td>

我还使用了短标签 <?= ... ?>而不是 <?php echo '...' ?> .

关于php - 在 PHP 页面上获取 SQL ID 并将其传递给另一个 PHP 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47907182/

相关文章:

php - 将字符串转换为字符数组

php - 包 'php5-gd' 没有安装候选

php - 通过 PHP 中的 AND 运算符进行短路评估

python - 在 SQLAlchemy 的 HAVING() 子句中使用标签

mysql - 如何从面向键值的表布局中获得 "traditional"单行结果

php - 使用 MAMP 的 Laravel 错误 HTTP 500

javascript - 如何在 Node.js 服务器上的 PHP Web 服务器和 Socket.io 之间创建握手?

php - 如何将 mysqli 结果从 php 页面传递到另一个页面?

php - 不带 limit() 传递数据库表的所有值

mysql - 从 Azure Mysql 导出数据最有效的方法是什么?