我真的不知道如何解释这个问题。但是,我正在尝试制作一个产品页面,显示与当前显示的行相同的行(例如"转到一个技术产品页面,在底部显示所有其他与技术相关的产品")。
以下是我尝试过的:
<?php
$pType = $row['typeP'];
$sql = "SELECT * FROM products WHERE type=$pType";
$result = mysqli_query($con, $sql) or die(mysqli_error($con));
while ($row = mysqli_fetch_array($result)){
echo "<a href='products.php?id={$row['productID']}'>";
echo "<img src='uploads/{$row['displayIMG']}'>";
echo "</a>";
}
?>
您的错误将出现在$typeP声明中。我猜$row在此之前没有定义。因此它是空的。也许你试图使用GET?
<?php
$pType = $_GET['typeP']; //This would get the type id from the querystring
$sql = "SELECT * FROM products WHERE type='".$pType."'";
$result = mysqli_query($con, $sql) or die(mysqli_error($con));
while ($row = mysqli_fetch_array($result)){
echo "<a href='products.php?id=".$row['productID']."'>";
echo "<img src='uploads/".$row['displayIMG']."'>";
echo "</a>";
}
?>
我还应该提到,您的代码受到SQL注入的约束。在数据库中运行输入之前,请先清理输入。否则你就是在找麻烦。http://www.wikihow.com/Prevent-SQL-Injection-in-PHP