php - 需要用PHP过滤掉一行

标签 php mysql

我浏览了该网站以寻找答案,但我尝试过的方法似乎都不起作用。

基本上,我得到了我的索引页面,其中的图 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/

相关文章:

php - 如何使用 SIMple HTML DOM 解析器获取标签的第一次出现

php - 读取最后插入的行

mysql - 将 ResultSet 的多行组合成一行

mysql - MYSQL 中重复行的值求和

php - Laravel 4 中具有特定角色的用户的额外字段

PHP mySQL 更新 SET LIKE %value

php - Magento 不允许像 ä 这样的特殊字符

php - 安装 composer 后我还没有 vendor 文件夹?

php - 时间戳为 15 天以上的 SQL 查询

mysql - 计算 ID 与另一列中的特定值一起出现的次数