我浏览了网站以寻找答案,但我尝试过的任何内容似乎都无法运作。
基本上我的索引页面上有瓷砖,显示了我数据库中项目的小预览。当我点击一个图块时,它会打开详细信息页面,此页面显示数据库中的每个项目,而不仅仅是我刚刚点击的项目。
我的问题是:如何调整查询以仅显示所选项目的相关说明?
这是我的索引页面代码
<?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>";
}
?>
答案 0 :(得分:1)
在详细信息页面上,使用此查询:
$query = 'SELECT * FROM `werkvorm` WHERE `w_id`='. intval($_GET['id']);
但请注意,现在这非常不安全。使用pdo预处理语句或某些库来防止sql注入。有关此事的excellent SO answer。请仔细研究这个问题,并养成使用mysqli prepared statements或pdo prepared statements进行任何您想要执行的SQL查询的习惯。