php - 如何限制此 mysql 查询仅显示列数据一次?

标签 php mysql

我需要向用户显示每个问题的所有答案选项,以便他可以选择他的答案。

显示/标记

 <?php 
 $i=1; 
 $surveyQ="SELECT * FROM ve_survey_answers a 
 JOIN ve_survey_questions q 
 ON a.QuestionId=q.id";
 $surveyResult=mysqli_query($db, $surveyQ);
 while($survey=mysqli_fetch_array($surveyResult)){$i++;?>
<div class="div">
<input type="radio" name="useranswer" id="radio<?=$i;?>" class="radio" value='<?=$survey['AnswerId'];?>'/>
<label class="surveylabel" for="radio<?=$i;?>"><?=$survey['Answer'];?></label>
</div>
<?php } ;?>

上面的查询有效,但显示如下:

What kind of pet do you prefer?
Cat
What kind of pet do you prefer?
Dog
What kind of pet do you prefer?
Bird
What kind of pet do you prefer?
Reptile

怎样才能让它显示成这样?

What kind of pet do you prefer?
Cat
Dog
Bird
Reptile

最佳答案

我对您的代码逻辑做了两处更改。首先,我向查询添加了一个 ORDER BY 子句,以便将问题分组在一起。这意味着当您迭代结果集时,给定问题的答案应该以连续的顺序出现。接下来,我添加了一个变量来跟踪当前问题是什么。该问题仅打印一次,在新问题答案 block 的开头。

<?php 
    $i=1; 
    $surveyQ = "SELECT * FROM ve_survey_answers a 
                INNER JOIN ve_survey_questions q 
                    ON a.QuestionId = q.id
                ORDER BY a.QuestionId";
    $surveyResult = mysqli_query($db, $surveyQ);
    $question = "";
    while ($survey=mysqli_fetch_array($surveyResult)) {
        $i++;
        $curr_question = $survey['Question'];
        if ($question != $curr_question) {
            $question = $curr_question;
            echo "<h5 style='font-weight: bold;'>$question</h5>";
        };
        echo "<div class=\"div\">
              <input type=\"radio\" name=\"useranswer\" id=\"radio<?=$i;?>\" class=\"radio\" value=\"<?=$survey['AnswerId'];?>\"/>
              <label class=\"surveylabel\" for=\"radio<?=$i;?>\"><?=$survey['Answer'];?></label>
             </div>";
    }
?>

关于php - 如何限制此 mysql 查询仅显示列数据一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43623437/

相关文章:

php - Nginx、PHP - 发生错误。抱歉,您要查找的页面目前不可用。请稍后再试

php - PHP中有没有办法访问压缩的RTF并输出RTF代码

php - UTF-8贯穿始终

mysql - 如何使用 VB.net 创建自定义 CrytalReporting 模板并将文件保存为 PDF

MySQL 和子查询不返回结果

python - 从模型对象查询时出现问题

php - 如何使用 PHP 从 SFTP 服务器下载文件

php - Yii2:如何使用mysql在Find()的orderby()中添加两个字段和NULLS LAST

php - mysql连接表,其中第一个表中的字段作为第二个表中的多个值

php - JSON 请求时 Laravel 5 中的简单错误响应