【发布时间】:2020-08-06 10:47:07
【问题描述】:
我尝试了 2 个小时来解决我的问题,但我不知道为什么我的代码不起作用。
我有一个如下所示的 sql 输出:
function output(){
while($row = $this->statement->fetch()) {
$id = $row["id"];
echo '
<tr>
<td>'.$row["comname"].'</td>
<td>'.$row["district"].'</td>
<td>'.$row["industry"].'</td>
<td>"<a href="?details=' . $id . '">Details</a>"</td>
</tr>
<br>
';
}
如果有人单击“详细信息”链接,我想提供有关该特定公司的更多信息。因此,我将 id 保存在 url 中以识别点击了哪个公司。 为了检查是否点击了详细信息链接,我写了这个:
编辑:刚刚在提示后添加了“$id = $_GET['details']”,现在看起来像这样:
if (isset($_GET['details'])){
$id = $_GET['details'];
echo $id;
}
}
当我单击“详细信息”链接时,它会正确更改 URL,但不会打印 ID。 (我不仅想打印 id,我只是为了检查功能。)为什么我的代码不起作用?我必须使用第二个“$GET”吗?真不知道怎么回事。
编辑:php 代码到此结束,之后我什么也不做。
Edit2:我试过 print_r($_GET),看起来ID 甚至不在$GET-Array 中。 if (isset($_GET['details'])) 语句也不会执行。
谢谢!
【问题讨论】:
-
尝试使用
print_r($_GET);来检查 GET 数组中放置的内容 -
将error reporting 添加到文件顶部测试时,例如,在您打开PHP 标记之后。即使您在配置为 LIVE 的服务器上进行开发,您现在也会看到任何错误。
<?php error_reporting(E_ALL); ini_set('display_errors', 1); -
要在实时环境中从 PHP 中获取错误,请将这 4 行添加到要调试
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);的任何基于MYSQLI_的脚本的顶部。这将强制任何MYSQLI_错误生成一个您可以在浏览器上看到的异常以及正常的 PHP 错误。 -
您更改了代码,但没有任何 cmets。首先你有
echo $id;没有$id = $_GET['details'];,这是有道理的,它不起作用。现在您添加了$id = $_GET['details'];,没有任何 解释或评论。如果我们不知道您的实际代码是什么以及它的结果是什么,那么我们究竟应该如何提供帮助?你试过了吗?成功了吗? -
在您展示的代码之后,还要向我们展示脚本中还有哪些其他代码。这可能会对您看不到任何输出的原因产生一些影响