我从MySQL表中选择了数据,返回的数据如下所示:
Name Rank Vessel Type Preview
John 1 ab View
Lisa 1 cd View
Carl 2 bd View
如上所示View
应该链接到用户的个人资料,具体取决于他们的Id
。
现在,我正在使用表格,如下所示,这是View
链接的行:
<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?>
我不知道为什么,但它重定向用户,例如:www.etc.com/preview.php?Id=
没有提供 Id。
如果我使用类似的东西:
<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View " . $Id . "</a></td>"; ?>
它返回View Id
例如View 1
,这意味着变量$Id
很好。你知道出了什么问题吗?
我还想问你重定向是否正确?或者还有其他/更好的方法可以做到这一点吗?
这是PHP:
<?php
if(isset($UserID)) {
$users = $con->prepare("
SELECT DISTINCT Id,
CONCAT(FirstName, ' ', LastName) AS FullName,
RankApplied,
VesselsType
FROM tbl
");
$users->execute();
$users->bind_result($Id, $FName, $RankApplied, $VesselsType);
} else {
echo "There is no User ID detected, try to refresh browser.";
}
?>
<table>
<tr>
<th>Name</th>
<th>Rank</th>
<th>Vessel Type</th>
<th>Preview</th>
</tr>
<?php
while ($users->fetch()) {
?>
<tr>
<td><?php echo $FName; ?></td>
<td><?php echo $RankApplied; ?></td>
<td><?php echo $VesselsType; ?></td>
<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?>
</tr>
<?php
}
?>
</table>
在包含 id 之前关闭href
报价,请将行更改为以下内容以使其正常工作:
<?php echo "<td> <a href='preview.php?Id=" . $Id . "'>View</a></td>"; ?>
替换
<?php echo "<td> <a href='preview.php?Id='" . $Id . ">View</a></td>"; ?>
跟
<?php echo "<td> <a href='preview.php?Id=" . $Id . ">View</a></td>"; ?>
?Id=
后您遇到了'
,这造成了问题。
而不是连接$ID
您可以直接使用
<?php echo "<td> <a href='preview.php?Id=$Id'>View</a></td>"; ?>
如文档中
双引号字符串将显示大量转义字符 (包括一些正则表达式),字符串中的变量将是 评价。这里重要的一点是,您可以使用大括号来 隔离要计算的变量的名称。例如,让我们 假设你有变量$type,你回声"$types是什么" 这将寻找变量$types。要解决此问题,请使用回声 "{$type} 是" 您可以将左大括号放在 美元符号。查看字符串解析以了解如何使用数组 变量等
请看这个答案
解决您的问题:
<?php echo "<td> <a href='preview.php?Id=".$Id . "'>View</a></td>"; ?>
或者,您可以在使用它之前定义:
<?php $link = "preview.php?Id=$Id"; ?>
<?php echo "<a href='$link'>View</a>"; ?>
您也可以在HTML中尝试PHP
<a href='<?php echo "preview.php?Id=$Id"?>'>View</a>