Php 在while循环中获取bind_结果的问题

Php 在while循环中获取bind_结果的问题,php,mysql,loops,while-loop,bind,Php,Mysql,Loops,While Loop,Bind,我正在尝试循环我的bind_结果,但它没有像我需要的那样工作。我试过20种不同的方法,结果总是一样的。我只得到$survey\u user\u id和$survey\u result的第一条记录以进行回显 另外,当我像在查询中那样进行计数时,我是否也需要循环进行计数?因为到目前为止,当有多个id用于评级_draft _result.id时,它只计算1条记录 try { $survey_title_stmt = $con->prepare("SELECT COUNT(rating_draft

我正在尝试循环我的bind_结果,但它没有像我需要的那样工作。我试过20种不同的方法,结果总是一样的。我只得到
$survey\u user\u id
$survey\u result
的第一条记录以进行回显

另外,当我像在查询中那样进行
计数时,我是否也需要循环进行计数?因为到目前为止,当有多个id用于评级_draft _result.id时,它只计算1条记录

try {
$survey_title_stmt = $con->prepare("SELECT COUNT(rating_draft_result.id), rating_draft_result.user_id, rating_draft_result.result 
                    FROM rating_draft_result
                    INNER JOIN users ON
                    rating_draft_result.user_id = users.id
                    AND rating_draft_result.result = users.id");

if ( !$survey_title_stmt || $con->error ) {
     // Check Errors for prepare
        die('Survey SELECT total count prepare() failed: ' . htmlspecialchars($con->error));
    }
if(!$survey_title_stmt->execute()) {
        die('Survey SELECT total count execute() failed: ' . htmlspecialchars($survey_title_stmt->error));
}
 $survey_title_stmt->store_result();
} catch (Exception $e ) {
    die("Survey SELECT total count: " . $e->getMessage());
}
    $survey_title_stmt->bind_result($survey_id, $survey_user_id, $survey_result);
while ($survey_title_stmt->fetch()) {
    $survey_id;
    $survey_user_id;
    $survey_result;
}
?>              
                <div class="survey_results_out">
                    <div id="survey_results_title">Survey Results</div>
                        <div class="survey_popup_container">
                            <a class="survey_popup" href="javascript:void(0)">Who drafted best results</a>
                            <div id="">Users that completed this survey</div><?php echo $survey_id; ?>
                            <div class="survey_popup_wrap light_admin">
                                <a class="close_survey_popup" href="javascript:void(0)">X</a>
                                <div id="indexpopupTitleWrap">
                                    <div id="indexpopupTitle">Results of who drafted the best</div>
                                </div>
                                <div id="survey_results_content_wrap">
                                    <div id="survey_results_content_usernames">
<?php                                   
    echo $survey_user_id;
    echo $survey_result;
?>
期望输出:

users  id``firstname``lastname``email``phone_number``username``password``salt``joined group

 1   Jack   Johnson  jack@email.com  2222  jackusername  ffd  fdddfd  today  1
 10   Tom   Thompson  fdfdfddf@fef.com 5555  Tomusername


rating_draft_result
     `id` `user_id` `result`
      20    1         10
我希望能够将评级结果的用户id和结果与用户表的id字段相匹配


因此,我想获得jackusername和tomusername字段。

不太确定您想要该数据是什么

但是,以下内容可能会有所帮助:-

这将获取rating_draft_result.id和与其相应的两个用户名

SELECT rating_draft_result.id, u1.username, u2.username 
FROM rating_draft_result
INNER JOIN users u1 ON rating_draft_result.user_id =  u1.id
INNER JOIN users u2 ON rating_draft_result.result = u2.id
这将获取rating_draft_result表中每对用户名集的rating_draft_result.id计数

SELECT COUNT(rating_draft_result.id), u1.username, u2.username 
FROM rating_draft_result
INNER JOIN users u1 ON rating_draft_result.user_id =  u1.id
INNER JOIN users u2 ON rating_draft_result.result = u2.id
GROUP BY u1.username, u2.username 

当我将其输入phpMyAdminSQL时,我只得到一个结果。那么,在我的查询中,是什么导致这只
SELECT
一个结果呢?您的主SELECT具有COUNT(聚合函数),没有GROUPBY子句。实际上,这是获取非空rating_draft_result.id的计数以及rating_draft_result.user_id和rating_draft_result.result的随机值。可能只需要将组按rating_draft_result.user_id、rating_draft_result.result添加到查询中,如下所示<代码>选择计数(rating_draft_result.id)、rating_draft_result.user_id、rating_draft_result.result FROM rating_draft_result内部连接用户对rating_draft_result.user_id=users.id和rating_draft_result.result=users.id按rating_draft_result.user_id分组,rating_draft__result.result
是这样的。聚合函数将所有结果汇总到一行(对所有行执行其函数)。您可以使用“分组依据”将它们按行分组。@Kickstart我尝试了这个方法,但没有效果,我做了一个调查<代码>评分\u草稿\u结果。用户\u id是填写它的用户的id<代码>评分\草稿\结果。结果是他们选择的用户的id。在我的用户表中,id是用户的id。因此,我只是尝试将
评级\u草稿\u结果。用户id
评级\u草稿\u结果。结果
匹配到该users.id,以便我可以调用用户名。然后可能是第二个查询。我刚刚尝试了这两个查询。两者都只回显一个用户名。第一个显示的计数为26,此时它应为2。我认为这是在计算用户表和评级结果表中的记录数量。它也只显示用户id和结果的一个用户名。第二个查询只显示一个计数。它也只显示一个用户id和结果记录。你能把表格和两个示例行放在上面演示这个问题吗。如果我正确理解了您的数据,则两个查询都不应该给出您所说的内容。可能需要一段时间才能回复(即将回家,稍后再查看)。这就是第二个的功能-。除非您希望count列是所有匹配项的计数,或者是一个用户的所有匹配项的计数,而不是所有匹配项组合的计数。
SELECT COUNT(rating_draft_result.id), u1.username, u2.username 
FROM rating_draft_result
INNER JOIN users u1 ON rating_draft_result.user_id =  u1.id
INNER JOIN users u2 ON rating_draft_result.result = u2.id
GROUP BY u1.username, u2.username