我浏览了该网站以寻找答案,但我尝试过的方法似乎都不起作用。
基本上,我得到了我的索引页面,其中的图 block 显示了我数据库中项目的小预览。当我点击一个图 block 时,它会打开详细信息页面,此时,该页面会显示数据库中的每一项,而不仅仅是我刚刚点击的那一项。
我的问题是:如何调整查询以仅显示所选项目的相关说明?
这是我的索引页面代码
<?php
$query="SELECT * FROM werkvorm";
$result=mysqli_query($link, $query);
while($row=mysqli_fetch_assoc($result))
{
echo "<h2>".$row['w_naam']."</h2>";
echo "<p>".$row['w_omschrijving']."</p>";
echo "<p><a href='details.php?id=".$row['w_id']."'>Meer weten?</a></p>";
}
?>
这是详情页代码
<?php
$query="SELECT * FROM werkvorm";
$result=mysqli_query($link, $query);
while($row=mysqli_fetch_assoc($result))
{
echo "<h2>".$row['w_naam']."</h2>";
echo "<p>".$row['w_omschrijving']."</p>";
echo "<p>Uitvoeringstijd: ".$row['w_uitvoeringstijd']." minuten.</p>";
$query="SELECT * FROM rol WHERE r_id=".$row['w_rolleerkracht'];
$rolresult=mysqli_query($link, $query);
$rolrow=mysqli_fetch_assoc($rolresult);
echo "<p>Rol van de leerkracht: ".$rolrow['r_omschrijving']."</p>";
echo "<p>Doelstellingen: ".$row['w_doelstellingen']."</p>";
$query="SELECT * FROM onderwijsniveau WHERE o_id=".$row['w_onderwijsniveau'];
$oresult=mysqli_query($link, $query);
$orow=mysqli_fetch_assoc($oresult);
echo "<p>Onderwijsniveau: ".$orow['o_omschrijving']."</p>";
echo "<p>Klasgrootte: ".$row['w_klasgrootte']."</p>";
$query="SELECT * FROM attribuut WHERE a_id=".$row['w_benodigdheden'];
$aresult=mysqli_query($link, $query);
$arow=mysqli_fetch_assoc($aresult);
echo "<p>Benodigheden: ".$arow['a_omschrijving']."</p>";
echo "<p>Voorbereidingstijd: ".$row['w_voorbereidingstijd']." minuten.</p>";
echo "<p>Voorbereiding: ".$row['w_voorbereiding']."</p>";
echo "<p>Visuele ondersteuning: ".$row['w_visueleuitleg']."</p>";
}
?>
最佳答案
在详细信息页面上,使用此查询:
$query = 'SELECT * FROM `werkvorm` WHERE `w_id`='. intval($_GET['id']);
但请注意,现在这样非常不安全。使用 pdo 准备好的语句或一些库来防止 sql 注入(inject)。有一个 excellent SO answer关于此事。请调查一下,并养成使用 mysqli prepared statements 的习惯。或 pdo prepared statements对于您想执行的任何 sql 查询。
关于php - 需要用PHP过滤掉一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28723903/