$arrQuestionContent = array();
$arrAnswerFile = array();
while ($qandaqrystmt->fetch()) {
$arrQuestionId[] = $qandaQuestionId;
$arrQuestionContent[] = $qandaQuestionContent;
}
...
while ($imgqrystmt->fetch()) {
$arrAnswer[] = $AnswerFile;
}
上記には、db からデータをarrQuestionContent[]
取得する 2 つの配列があり、すべての質問を$arrAnswer[]
取得し、質問ごとにすべての回答を取得します。
ただし、一部の質問には回答が含まれていない場合があり、その結果Notice: Undefined offset:
、テーブル内の for each 質問行に回答が含まれていません。
私の質問は、質問行に回答が含まれていない場合、列の下に空白行を表示するにはどうすればよいAnswer
ですか?
また、質問が複数の回答を持つ可能性もあります。その場合は、複数の回答があるAnswer
質問行に、質問行内の列の下にすべての回答を含めることができるようにします。現時点では、複数の回答があると想定される質問行に対して 1 つの回答のみが表示されます。
以下に表を示します。
<table id="tableqanda" align="center" cellpadding="0" cellspacing="0" border="1">
<thead>
<tr>
<th width="30%" class="question">Question</th>
<th width="12%" class="images">Answer</th>
</tr>
</thead>
<tbody>
<?php
foreach ($arrQuestionId as $key=>$question) {
echo '<tr class="tableqandarow">'.PHP_EOL;
echo '<td width="30%" class="question">'.htmlspecialchars($arrQuestionContent[$key]).'</td>' . PHP_EOL;
echo '<td width="12%" class="images">'. ( empty ($arrAnswerFile[$key]) ) ? " " : htmlspecialchars( is_array( $arrAnswerFile[$key] ) ? implode(",", $arrAnswerFile[$key]) : $arrAnswerFile[$key] ) . '</td>' . PHP_EOL;
echo '</tr>'.PHP_EOL;
}
?>
</tbody>
</table>
アップデート:
テーブルがどのように見えるかを示すスクリーンショット:
更新 2:
の結果var_dump($arrQuestionContent);
:
array(2) { [0]=> string(19) "Name these 2 things" [1]=> string(11) "What is 4+4" }
の結果var_dump($arrAnswerFile);
:
array(3) {
[0]=> string(1) "A"
[1]=> string(1) "C"
[2]=> string(1) "A"
}
以下はテーブルのスクリーンショットです。これは、質問に回答があるかどうかに関係なく発生します。
データベース:
QuestionId QuestionContent Answer
1 Name these 2 Things A
1 Name these 2 Things C
2 What is 4+4? A