循环通过mysqli行但只是没有重复

时间:2018-03-17 11:05:18

标签: php database mysqli phpmyadmin

我有一个数据库,其中存储了相机详细信息,我想循环遍历数据库的行并根据相机模型创建复选框,但是如果已存在具有相同相机型号的复选框,则我不想要多次正在创建复选框,以便仅限制其中一个。

我感谢任何可以指导我发现它的帮助!

提前致谢!

<?php
    $checkquery = "SELECT * FROM markers WHERE session_id = '".$_SESSION["id"]."'";
    $result = mysqli_query($connection,$checkquery);
    if (!$result) {
      die('Invalid query: ' . mysqli_error());
    }
    echo '<form>';
    echo "<h3>Camera Model: </h3>";
    while ($row = @mysqli_fetch_assoc($result)){
        echo '<label>'.$row['model']. '</label>'.'<input type="checkbox" name="categories" value='.$row['model'].' >';
    }
    echo '</form>';
?>

1 个答案:

答案 0 :(得分:1)

您可以使用DISTINCT ...

通过SQL查询执行此操作
    $checkquery = "SELECT DISTINCT model 
                    FROM markers 
                    WHERE session_id = '".$_SESSION["id"]."'";

但是也要考虑使用预准备语句和绑定变量来使您的应用程序更安全。

<强>更新 还有其他一些事情......

    while ($row = mysqli_fetch_assoc($result)){
        echo '<label>'.$row['model']. '</label>'.'<input type="checkbox" name="categories" value="'.$row['model'].'" >';
    }

正如Syscall在评论中指出的那样,value属性应该有引号括起来。

AND请在代码中停止使用@,这会隐藏各种应该修复而不是隐藏的问题。