我需要从我的数据库中输出问题,以便用户可以在注册过程中回答这些问题。每个问题都有 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;
?>
最佳答案
您没有任何
<form>
在您的问题中,我想您知道自己在做什么,并且知道如何处理自<input>
以来发布的数据。和<select>
元素没有任何name
属性。正如 Strawberry 所建议的,建议使用准备好的语句。
我已经稍微更改了您的代码以满足您的需求,在您的代码中,您必须使用 <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;
?>
关于php - 如何通过ID查看数据是否已经输出到网站,避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50476969/