質問リストがあり、回答を投稿できますが、データベースに配置する方法がわかりません。また、どのようなテーブルレイアウトを使用すべきかわかりません。
私はいくつかのことを試しましたが、複数の回答があるため、一度にすべてを挿入することはできません。すべての質問リストに他の質問リストほど多くの質問があるわけではないため、1000個の「回答」列を作成できないため、テーブルで1つの「回答」列を使用していました。
<form action="Antwoord.php" method="POST">
<input type="text" name="Naam" placeholder="Uw naam:">
<?php
$sql = "SELECT * FROM questionlist_choice WHERE Qid='1'";
$result = mysqli_query($conn, $sql);
if ($result->num_rows > 0) {
$i = 0;
while ($row = mysqli_fetch_assoc($result)) {
$vraag = $row['Vraag'];
$vraagA = $row['Vraag_keuzeA'];
$vraagB = $row['Vraag_keuzeB'];
$vraagC = $row['Vraag_keuzeC'];
$vraagD = $row['Vraag_keuzeD'];
$vraagE = $row['Vraag_keuzeE'];
$vraagF = $row['Vraag_keuzeF'];
echo "<div>";
echo "<br><p>$vraag</p>";
echo "<input type='radio' name='q[$i]' value='$vraagA'> $vraagA<br>";
echo "<input type='radio' name='q[$i]' value='$vraagB'> $vraagB<br>";
echo "<input type='radio' name='q[$i]' value='$vraagC'> $vraagC<br>";
echo "<input type='radio' name='q[$i]' value='$vraagD'> $vraagD<br>";
echo "<input type='radio' name='q[$i]' value='$vraagE'> $vraagE<br>";
echo "<input type='radio' name='q[$i]' value='$vraagF'> $vraagF<br>";
echo "</div>";
$i++;
?>
<input type="submit">
</form>
3つの異なるテーブルを作成します。
ユーザー、質問、および回答
構造:
users:
- id
- name
- other data you store ...
surveys:
- id
- name or whatever data you store about survey
questions
- id
- survey_id
- text (actual question)
- ...
answers
- id
- user_id
- question_id
- answer
すべての回答を1つの列に挿入する場合(これはお勧めしません)、回答をシリアル化できます
また、異なるデータベース構造を使用する必要があります
answers:
- id
- user_id
- survey_id
- answers
$ iを1に変更して、質問IDが1で始まるようにします。
$i = 1;
while ($row = mysqli_fetch_assoc($result)) {
// also change the name to just $i
echo "<input type='radio' name='.$i.' value='$vraagA'> $vraagA<br>";
dbへの投稿:
// put all checkbox values in a single array
$answers = [];
for($i = 1; $i<= $numberOfAnswers; $i++) {
$answers[$i] = $_POST[$i];
}
$answers = serialize($answers);
// do the insert query
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加