gpt4 book ai didi

php - 构造 while 语句以在 MySQL 数据库中存储动态生成的 php 表单问题?

转载 作者:行者123 更新时间:2023-11-29 11:42:54 25 4
gpt4 key购买 nike

我正在开展一项简单的调查,向用户展示一个网站,其中包含一些表单中的问题。

这些问题存储在数据库中,而不是“硬编码”,因为将来我希望能够向不同的用户呈现不同的问题,甚至可能随机显示哪些问题。

我的问题数据库结构如下所示:

table: questions
id q_eng
1 Satisfied?
2 Happy?
3 Sad?

这就是我想要存储答案的方式:

table: answers
id timestamp question answer
1 2016-02-17 Satisfied? yes
2 2016-02-17 Happy? yes
3 2016-02-17 Sad? no
4 2016-02-18 Satisfied? no
5 2016-02-18 Happy? no
6 2016-02-18 Sad? yes

我正在使用我存储的问题在 php 中填充我的表单,如下所示:

$sql = "SELECT DISTINCT q_eng FROM questions WHERE id = 1";
$result = $con->query($sql);
$row = mysqli_fetch_array($result);

echo "<div class='header'>". $row['q_eng'] ."</div>";
echo "<div class='questions'>";
echo "<input type='radio' name='". $row['q_eng'] ."' id='satisfied_yes value='yes'>";
echo "<label for='satisfies_yes'><img src='satisfied.png' width='15%'></label>";
echo "<input type='radio' name='". $row['q_eng'] ."' id='satisfied_no' value='no'>";
echo "<label for='satisfied_no'><img src='notsatisfied.png' width='15%'></label>";
echo "</div>";

// code repeating for question 2 and question 3 using id = 2 and id = 3.

我现在遇到的麻烦是构建正确的 while 循环来保存不同的问题和答案。

// checks if form has been submitted    
if (!empty($_POST)) {

// fetches distinct questions from database
$sql = "SELECT DISTINCT q_eng FROM questions";
$result = $con->query($sql);

// starts loop for each distinct value to save distinct values
while ($row = mysqli_fetch_array($result)) {

// tries to save the value for each question (yes or no)
// this is not working, maybe due to some syntax error.
// echoing $answer displays nothing.
$answer = $_POST[$row["q_eng"]];

// saves the values. seems to be working fine
$query = "INSERT INTO answers VALUES ('',now(),'".$row['q_eng']."','$answer')";
mysqli_query($con,$query);

}
}

现在,我 99% 确定我的错误在这一行,但我无法确定是否存在一些简单的语法错误,或者我是否正在尝试做一些不应该工作的事情?

$answer = $_POST[$row["q_eng"]];

非常感谢您提供的任何帮助。

最佳答案

您需要更改插入语句:

$query = "INSERT INTO answers VALUES ('',now(),'".$row['q_eng']."','" . $answer . "')";

抱歉,我刚刚看到您没有 <form>在您的代码中标记。是$_POST甚至满了?

关于php - 构造 while 语句以在 MySQL 数据库中存储动态生成的 php 表单问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35457792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com