在html表中标记某个单元格-(投票表)

时间:2018-06-25 11:53:00

标签: php mysql html-table voting

我正在寻找解决问题的方法,我有不同的想法,但似乎没有一个能按预期工作。

我的问题:我有一些如下所示的mysql表:

MYSQL Tables

我要使用此mysql-table做的是将其发布为html-table 看起来应该像这样:

output table

我的问题是我不知道在投票支持答案的用户数量,甚至不知道答案的数量。

我只想用一个x标记表格单元格,用户选择了答案。

这是最接近我预期目标的代码。

$sql = "SELECT voting_user.*, voting_user_answer.*, voting_answeren.* FROM
voting_user, voting_user_answer, voting_answeren WHERE  
voting_user_answer.thema_id = $thema_id AND voting_user.user_id = 
voting_user_answer.user_id AND voting_answeren.answer_id = 
voting_user_answer.answer_id";

$i=0;   
echo "<table border=1>";
echo "<tr><th>answer-ID</th><th>answer</th><th>user</th>";
foreach ($pdo->query($sql) as $row) {


echo "<tr><td>".$row["answer_id"]."</td>
<td>".$row["answer_option"]."</td><td>".$row["user_name"]."   
</td></tr>";
$tableRows[$i]=array("answer_option"=>$row["answer_option"],
"user_name"=>$row["user_name"], "cross"=>"x");
$namen[$i]=$row["user_name"];
$answer = Array
(
"answer_option" => $row["answer_option"]
, "test2" => "x"
);


$i++;
$counter=$i-1;
}
echo "</table>";


$resultMatrix = array();

foreach($tableRows as $resulting) {
$from = $resulting['answer_option'];
$to = $resulting['user_name'];
$cross = $resulting['cross'];

$resultMatrix[$from][$to] = $cross;
}

echo '<table border="1">';
echo '<tr>';
echo '<th>', '#', '</th>';


foreach($namen as $user_name) { 
echo '<th>', $namen[$i] ,'</th>';
}
echo '</tr>';

foreach(array_keys($resultMatrix) as $answer_option) { 
echo '<tr>';
echo '<td>', $answer_option, '</td>'; 
foreach(array_keys($resultMatrix[$answer_option]) as $user_name) { 
echo '<td>', $resultMatrix[$answer_option][$user_name], '</td>';    
}

echo '</tr>';
}
echo '</table>';

即使是最细微的提示,我也将感激不尽。

编辑

到目前为止,我的html输出看起来像这样 html output so far

但是我希望它看起来像这样 desired html output

上面的表格只是为了澄清,以便您了解投票结果。

我的问题是我不知道有多少用户在投票,有多少用户可以选择。 每次民意测验会有所不同。所以我不能使用静态表来标记单元格。

0 个答案:

没有答案