如何通过id检查数据是否已经输出到网站,以避免重复

8iwquhpp  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(463)

我需要从我的数据库输出问题,以便用户可以回答他们作为注册过程的一部分。每个问题有2个相关的选项,每个问题现在被输出到站点上两次,每个问题下面有一个选项。我需要每个问题出现一次与他们的相关选择出现在它下面。请看下面我的代码。

<?php
       $sql = "SELECT Question_ID, Question FROM Questions;";

       $result = mysqli_query($conn, $sql);
       $resultCheck = mysqli_num_rows($result);

       if($resultCheck > 0):
          while($row = mysqli_fetch_assoc($result)):
             $questionid = (int)$row['Question_ID'];
            ?>
            <label><?php echo $row['Question'];?></label><input type="hidden" value="<?php echo $row['Question_ID'];?>"/>
   <?php
             $query = "SELECT Choice_ID, Choice FROM Choices WHERE Question_ID = '$questionid';";
             $results = mysqli_query($conn, $query);
             $resultsCheck = mysqli_num_rows($results);
               if($resultsCheck > 0):
                  while($rows = mysqli_fetch_assoc($results)):
        ?>
         <br><select id="choice">
            <option value="<?php echo $rows['Choice_ID']; ?>"><?php echo $rows['Choice']; ?></option>
        </select><br/>
        <?php
        endwhile;
        endif;
        endwhile;
        endif;
        ?>
agxfikkp

agxfikkp1#

像这样组织代码(为了可读性而简化)

while($question = mysqli_fetch_assoc($result))
{
   echo "<label for='q'>...; // print question
   echo "<select name='answer'>"  
   while ($answer = mysqli_fetch_assoc($results))
   {
       echo '<option>'.$answer.</option>';
   }
   echo '</select>';
}
tvmytwxo

tvmytwxo2#

你没有 <form> 在你的问题,我想你知道你在做什么,你知道如何处理发布的数据,因为你的 <input> 以及 <select> 元素没有任何 name 属性。
正如草莓所建议的,建议使用事先准备好的语句。
为了满足你的需要,我对你的代码做了一点修改,在你的代码中,你必须 <select> 挂牌退出 while 打个圈,然后 <option> 循环中的标记。
所以代码是这样的:

<?php
$sql = "SELECT Question_ID, Question FROM Questions;";

$result = mysqli_query($conn, $sql);
$resultCheck = mysqli_num_rows($result);

if($resultCheck > 0):
    while($row = mysqli_fetch_assoc($result)):
        $questionid = (int)$row['Question_ID'];
        echo '<label>'.$row['Question'].'</label><input type="hidden" value="'.$row['Question_ID'].'">';

        $query = "SELECT Choice_ID, Choice FROM Choices WHERE Question_ID = '$questionid';";
        $results = mysqli_query($conn, $query);
        $resultsCheck = mysqli_num_rows($results);
        if($resultsCheck > 0):
            $string = '<br><select id="choice">';
            while($rows = mysqli_fetch_assoc($results)):
                $string .= '<option value="'.$rows['Choice_ID'].'">'.$rows['Choice'].'</option>';
            endwhile;
            $string .= '</select><br>';
            echo $string;
        endif;
    endwhile;
endif;
?>

相关问题