我正在尝试创建一个用户输入其名称和注释的表单,它将存储在mySQL数据库中,然后打印在下面(如基本注释板)。 我的评论是成功提交我的评论板并在下面打印出来,但名称不是。
这是我的PHP编码:
$comment = clean_string($db_server, $_POST['comment']);
$name = clean_string($db_server, $_POST['name']);
if ($cokeboard != "") {
$query = "INSERT INTO cokeboard (name, comment) VALUES ('$comment', '$name')";
mysqli_query($db_server, $query) or die("Insert failed: " . mysqli_error($db_server));
$message = "Thanks for your comment!";
}
//Print out existing comment
$query = "SELECT * FROM cokeboard";
$result = mysqli_query($db_server, $query);
if (!$result) die("Database access failed: " . mysqli_error($db_server));
while($row = mysqli_fetch_array($result)){
$str_comments .= "<h3>" . $row['comment'] . "</h3>" . "<h6>" . $row['commDate'] . "</h6>" . "<h6>" . $row['name'] . "</h6>";
}
mysqli_free_result($result);
以下是用户将提交的表单:
<form id="frmStudentFees" action="coke.php" method="post">
Name:<input type='name' name='name'><br />
<textarea rows="5" cols="30" name="comment"></textarea></br>
<input type="submit" id="submit" name="submit" value="Submit form" />
</form>
然后打印输出:
<?php
echo $str_comments;
?>
请记住,我对代码很陌生。
非常感谢
答案 0 :(得分:0)
试试这个:
$comment = clean_string($db_server, $_POST['comment']);
$name_ = clean_string($db_server, $_POST['name']);
if ($cokeboard != "") {
$query = "INSERT INTO cokeboard (name, comment) VALUES ('$name_','$comment')";
mysqli_query($db_server, $query) or die("Insert failed: " . mysqli_error($db_server));
$message = "Thanks for your comment!";
}
答案 1 :(得分:0)
此行确实有效(as per W3.org):
Name:<input type='name' name='name'><br />
^^^^
然而,许多人(包括我自己)喜欢使用text
作为基于文本的表单元素的元素类型,具体取决于所使用的浏览器类型,在这种特殊情况下,它很可能是问题所在。
因此,请使用以下内容:
Name:<input type='text' name='name'><br />
然而,这是主要问题; 您在comment
和name
中混淆了订单:
$query = "INSERT INTO cokeboard (name, comment) VALUES ('$comment', '$name')";
^^^^^^^ ^^^^
应为:
$query = "INSERT INTO cokeboard (name, comment) VALUES ('$name', '$comment')";
或使用表格和列名称的反引号,这是一种首选方法:
$query = "INSERT INTO `cokeboard` (`name`, `comment`) VALUES ('$name', '$comment')";
插入顺序很重要。
答案 2 :(得分:0)
尝试echo $query
,看看你得到了什么输出..