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

时间:2017-12-20 13:30:18

标签: php mysql

有没有人可以帮我从SQL获取ID变量并将其发送到另一个PHP页面? index.php输出:(Image1) enter image description here

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

我需要完成的是以下内容: 每当我点击index.php页面中状态字段下的“确定”或“NOK”时,我需要它转到另一个名为checks.php的PHP页面,并显示该行的ID我点击了。

因此,对于示例,在Image1(index.php页面)上,如果我点击状态列下有ID=2确定,我想得到这个{ {1}}变为变量并将其传递到下一页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 } ?> ,例如http://localhost/checks.php?id=2,则可以正常使用

1 个答案:

答案 0 :(得分:1)

您的问题出在HTML代码的最后td

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

如您所见,您手动设置href标记的a并尝试将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 '...' ?>