【发布时间】:2023-04-09 04:13:01
【问题描述】:
我正在尝试为常见问题制作一个 CMS。
我有一个页面可以将问题和答案加载到具有独特想法的文本区域中,并且计划也编辑这些文本区域,然后将它们插入数据库中。
我也希望能够将新的常见问题解答添加到数据库中。
现在我正在尝试使用 ON DUPLICATE KEY UPDATE.. 来完成此操作,但它无法正常工作。
index.php
<form id='faqadd' action='faqsql.php' method='POST'>
<?PHP
include 'include.php';
$query = 'SELECT * FROM FAQ';
$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
$val = 1;
while($row=mysql_fetch_array($result)){
echo '<div class="faq['.$val.']"><label> Question </label><input type="hidden" name="id['.$val.']"></input><textarea rows="8" cols="50" id="q['.$val.']" >'.$row["question"].'</textarea><br />
<label> Answer </label><textarea rows="4" cols="50" name="a['.$val.']" >'.$row["answer"].'</textarea></div><br />';
$val++;
}
echo '<h3 style="color:white;">New FAQ </h3>';
echo '<div class="faq['.$val.']"><label> Question </label><textarea rows="8" cols="50" id="q['.$val.']" ></textarea><br />
<label> Answer </label><textarea rows="4" cols="50" name="a['.$val.']" ></textarea></div><br />';
?>
<input type='submit' name='ADD' value='ADD' id='ADD'>
</form>
faqsql.php
foreach ($_POST['id'] as $id) {
if ($id) {
$query = 'INSERT INTO FAQ ("id", "question", "answer") VALUES ("' . $id . '","' . $_POST["q"] . '", "' . $_POST["a"] . '")
ON DUPLICATE KEY UPDATE "question" = "' . $_POST["q"] . '", "' . $_POST["a"] . '"';
$result = mysql_query($query) or die("Error in query: $query. " . mysql_error());
echo $id . " has been added </br > ";
}
}
echo '<a href="editfaq.php">Back FAQ Manager </a>';
接下来我应该尝试什么?
更新的代码。还是不行。
【问题讨论】:
-
主要问题是什么?你有什么错误吗?
-
我在发布数组时有点失落。 $_POST['faq'] 为空
-
好像没有提交表单。
<form>标记内的第一行中有一个额外的single quotation。 -
faq是一个<div>类,因此它不会作为表单元素发布。 -
您需要为 textarea 控件指定一个名称...认为
q[' . $val . ']就是您的意思。