有没有人可以帮我从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,则可以正常使用
答案 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 '...' ?>
。