Php 双击“需要”以插入数据库
这可能是一个非常简单的解决方案,但我实在想不出来。如果我插入到我的数据库中,我必须按两次插入按钮,它才能工作。。我的猜测是,这与我在一个文件中使用两个表单有关,或者仅仅因为我在一个文件中使用了所有表单。请帮帮我 谢谢 代码:Php 双击“需要”以插入数据库,php,html,mysql,mysqli,Php,Html,Mysql,Mysqli,这可能是一个非常简单的解决方案,但我实在想不出来。如果我插入到我的数据库中,我必须按两次插入按钮,它才能工作。。我的猜测是,这与我在一个文件中使用两个表单有关,或者仅仅因为我在一个文件中使用了所有表单。请帮帮我 谢谢 代码: 问题是,您正在使用与生成表单的脚本相同的脚本处理表单提交。再加上您首先查询数据库,用您已经存储的内容生成表单,然后添加用户可能发布的任何数据,您将永远不会看到您添加的数据在您提交表单时第一次显示。 将insert查询移到顶部(在生成表单之前),或将关注点分开 让我告诉你我
问题是,您正在使用与生成表单的脚本相同的脚本处理表单提交。再加上您首先查询数据库,用您已经存储的内容生成表单,然后添加用户可能发布的任何数据,您将永远不会看到您添加的数据在您提交表单时第一次显示。
将insert查询移到顶部(在生成表单之前),或将关注点分开
让我告诉你我的意思:
//don't OR DIE
$sql = mysqli_query($link, "SELECT * FROM Questions ORDER BY ID ASC ") or die(mysqli_error($link));
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'><table border='1'>";
while ($rows = mysqli_fetch_assoc($sql))
{//build form here
}
/*
CODE HERE
*/
if ($_POST['vraag'] != "") {
//insert here, after form is generated
}
应该是:
if (isset($_POST['vraag'])) {
}
您正在将可能不存在的数组的键与空字符串进行比较,而您应该检查该数组键是否存在。使用isset
我可以说一点,但我现在就不说了。还有一件事:再次->分离关注!表示层(输出:HTML等)不应包含数据库连接内容。这应该在别处进行。
使用AJAX异步处理表单(将提交的内容添加到已经存在的表中),或者至少使用单独的脚本。让一个脚本完成所有工作很快就会让你为一堆意大利面代码而哭泣问题是你在处理表单提交时使用的脚本与生成表单的脚本相同。再加上您首先查询数据库,用您已经存储的内容生成表单,然后添加用户可能发布的任何数据,您将永远不会看到您添加的数据在您提交表单时第一次显示。
将insert查询移到顶部(在生成表单之前),或将关注点分开
让我告诉你我的意思:
//don't OR DIE
$sql = mysqli_query($link, "SELECT * FROM Questions ORDER BY ID ASC ") or die(mysqli_error($link));
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'><table border='1'>";
while ($rows = mysqli_fetch_assoc($sql))
{//build form here
}
/*
CODE HERE
*/
if ($_POST['vraag'] != "") {
//insert here, after form is generated
}
应该是:
if (isset($_POST['vraag'])) {
}
您正在将可能不存在的数组的键与空字符串进行比较,而您应该检查该数组键是否存在。使用isset
我可以说一点,但我现在就不说了。还有一件事:再次->分离关注!表示层(输出:HTML等)不应包含数据库连接内容。这应该在别处进行。
使用AJAX异步处理表单(将提交的内容添加到已经存在的表中),或者至少使用单独的脚本。让一个脚本完成所有工作很快就会让你为一堆意大利面代码而哭泣它没有提交两次,实际上它没有在插入后加载数据
尝试添加
if ($_POST['vraag'] != "") {
$vraag = $_POST['vraag'];
$antwoord = $_POST['antwoord'];
echo "are you sure?";
mysqli_query($link, "INSERT INTO questions (Question, Answer) VALUES (".$vraag.",".$antwoord.");") or die(mysqli_error($link));
}
以前
$sql = mysqli_query($link, "SELECT * FROM Questions ORDER BY ID ASC ") or
die(mysqli_error($link));
这将在保存当前记录后选择您的记录。它不会提交两次,实际上它不会在插入后加载数据
尝试添加
if ($_POST['vraag'] != "") {
$vraag = $_POST['vraag'];
$antwoord = $_POST['antwoord'];
echo "are you sure?";
mysqli_query($link, "INSERT INTO questions (Question, Answer) VALUES (".$vraag.",".$antwoord.");") or die(mysqli_error($link));
}
以前
$sql = mysqli_query($link, "SELECT * FROM Questions ORDER BY ID ASC ") or
die(mysqli_error($link));
这将在保存当前记录后选择您的记录。哦,带有“确定吗?”的回音实际上没有任何意义。当我试图解决这个问题时,我把它放在那里。你可以编辑你自己的问题,你知道。。。我已经为你删除了echo
,但是带有“你确定吗?”的echo真的没有任何意义。当我试图解决这个问题时,我把它放在那里。你可以编辑你自己的问题,你知道。。。我已经为你删除了echo
,虽然谢谢你的评论,我通常不会在这个地方放数据库的东西,但这次我只是胡闹,不想创建多个文件。谢谢你的评论,我通常不会把数据库放在这个地方,但这次我只是胡闹,不想创建多个文件。