需要用PHP过滤掉一行

时间:2015-02-25 16:10:39

标签: php mysql

我浏览了网站以寻找答案,但我尝试过的任何内容似乎都无法运作。

基本上我的索引页面上有瓷砖,显示了我数据库中项目的小预览。当我点击一个图块时,它会打开详细信息页面,此页面显示数据库中的每个项目,而不仅仅是我刚刚点击的项目。

我的问题是:如何调整查询以仅显示所选项目的相关说明?

这是我的索引页面代码

<?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>";                           
    }

?>

1 个答案:

答案 0 :(得分:1)

在详细信息页面上,使用此查询:

$query = 'SELECT * FROM `werkvorm` WHERE `w_id`='. intval($_GET['id']);

但请注意,现在这非常不安全。使用pdo预处理语句或某些库来防止sql注入。有关此事的excellent SO answer。请仔细研究这个问题,并养成使用mysqli prepared statementspdo prepared statements进行任何您想要执行的SQL查询的习惯。