Php 如何在每行中显示答案和文本输入
关于如何在php代码中显示正确的表布局,我有一个问题: 我想在表格中显示答案及其文本输入。。现在显示如下:Php 如何在每行中显示答案和文本输入,php,html,mysql,Php,Html,Mysql,关于如何在php代码中显示正确的表布局,我有一个问题: 我想在表格中显示答案及其文本输入。。现在显示如下: Question Answer Marks Per Answer What is 2+2 B (text input) Name the 3 hobbits? BCE (text input) 我想更改表的显示,使其如下所示: Question
Question Answer Marks Per Answer
What is 2+2 B (text input)
Name the 3 hobbits? BCE (text input)
我想更改表的显示,使其如下所示:
Question Answer Marks Per Answer
What is 2+2? B (text input)
Name the 3 Hobbits? B (text input)
C (text input)
E (text input)
正如您从新显示屏上看到的。我希望每个问题的每个答案都显示在自己的一行中,而不是每个问题的所有答案都显示在一行中,而这正是它目前正在做的。
我希望文本输入也显示在自己的行中,如答案:
我的问题是,如何实现第1点和第2点,使其与新布局相匹配
以下是当前显示的代码:
$assessment = $_SESSION['id'] . $sessionConcat;
include('connect.php');
$query = "SELECT q.QuestionId, q.QuestionContent, GROUP_CONCAT(DISTINCT Answer ORDER BY Answer SEPARATOR '') AS Answer,
FROM Question q
INNER JOIN Answer an ON q.QuestionId = an.QuestionId
WHERE s.SessionName = ?
";
// prepare query
$stmt=$mysqli->prepare($query);
// You only need to call bind_param once
$stmt->bind_param("s", $assessment);
// execute query
$stmt->execute();
// This will hold the search results
$searchQuestionId = array();
$searchQuestionContent = array();
$searchAnswer = array();
// Fetch the results into an array
// get result and assign variables (prefix with db)
$stmt->bind_result($dbQuestionId, $dbQuestionContent, $dbAnswer);
while ($stmt->fetch()) {
$searchQuestionContent[] = $dbQuestionId;
$searchQuestionContent[] = $dbQuestionContent;
$searchAnswer[] = $dbAnswer;
}
?>
</head>
<body>
<form id="QandA" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post">
<?php
echo "<table border='1' id='markstbl'>
<tr>
<th class='questionth'>Question</th>
<th class='answerth'>Answer</th>
<th class='answermarksth'>Marks per Answer</th>
</tr>\n";
foreach ($searchQuestionContent as $key=>$question) {
echo '<td>'.htmlspecialchars($question).'</td>' . PHP_EOL;
echo '<td class="answertd">'.htmlspecialchars($searchAnswer).'</td>' . PHP_EOL;
echo '<td class="answermarkstd"><input class="individualMarks" name="answerMarks[]" id="individualtext" type="text" "/></td>' . PHP_EOL;
}
echo "</table>" . PHP_EOL;
?>
</form>
</body>
答题表:
AnswerId (auto) QuestionId Answer
1 1 B
2 2 B
3 2 C
4 2 E
看起来您可以去掉分组子句。您可能希望按问题id排序,因此同一问题的所有答案都将一起给出
SELECT q.QuestionId, q.QuestionContent, an.Answer
FROM Question q
INNER JOIN Answer an ON q.QuestionId = an.QuestionId
WHERE s.SessionName = ?
ORDER BY q.QuestionId, an.Answer
关于数据库模式的更多信息会有所帮助。另外,在哪里使用绑定参数s?你是否包含了你的整个查询?让我稍微编辑一下代码和问题,这样你和其他人会更容易给我10个mins@slashingweapon还有其他人,问题已经更新到包含更新代码,更新的示例和数据库表的外观示例您在使用什么htmlspecialchars@Sami我做了研究,它指出,如果我将数据库中的数据回送到HTML中,那么就使用htmlspecialchar,这样它就不会转义到HTML中
SELECT q.QuestionId, q.QuestionContent, an.Answer
FROM Question q
INNER JOIN Answer an ON q.QuestionId = an.QuestionId
WHERE s.SessionName = ?
ORDER BY q.QuestionId, an.Answer