非常新的PHP所以请放轻松我:) 如果产品在显示结果页面后被用户点击,我需要显示产品的详细信息(制造商,标签号等)。用户最初在搜索表单中键入,然后我得到catalogue_query.php以显示结果,图像等,这些都很好。每个产品都有自己唯一的ID,我很幸运地将它显示在details.php页面的url中,这样我就做对了。
然而,当我点击某个项目时,即使我确实在URL中显示了带有正确ID的“details.php”页面,它返回的是数据库中第一个项目的图像和详细信息,而不是我点击的实际项目 - 换句话说,图片和详细信息与网址中的ID不匹配。
以下是显示结果的代码:
<?php
$query = $_POST ['query'];
$db = mysqli_connect ('localhost','root','root','asset_catalog');
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$result = mysqli_query($db,"SELECT * FROM assets WHERE Description LIKE '%$query%' OR Manufacturer LIKE '%$query%' ORDER BY Description ");
echo "<table border='0'>
<tr>
</tr>";
while($row = mysqli_fetch_array($result))
{
if (($i % 5) == 0) echo "<tr>";
echo "<td><img src='".$row['Image']."' id='queryimg'><br>
<a href='details.php?ID=".$row['ID']."' style='color: #fff;'>{$row[Description]}</a></td>";
if (($i % 5) == 4) echo "</tr>";
$i++;
}
if ( $i > 0 && ($i-1) % 3 < 2) echo "</tr>";
echo "</table>";
?>
这是我的php for details.php页面:
<?php
$db = mysqli_connect ('localhost','root','root','asset_catalog');
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$ID = isset($_GET['ID']) ? (int) $_GET['ID'] : null;
$result = mysqli_query($db,"SELECT * FROM assets WHERE ID = $ID");
$row = mysqli_fetch_array($result);
echo "<table border='0'>
<tr>
</tr>";
echo "<tr>";
echo "<td><img src='".$row['Image']."' id='queryimg_details'>
<br>
{$row[Description]}</a>
<br>
{$row[Manufacturer]}
<br>
{$row[Tag_Num]}</td>";
echo "</tr>";
?>
有人能指出我正确的方向吗?我迷失了我做错了什么 - 或者没做错。 非常感谢提前!
答案 0 :(得分:0)
$row
可以有多个条目,因此您应该遍历它:
foreach($row as $r) {
// do stuff with this row like $r['Image']
}
您可能也想更改变量名称。