2

出于某种原因,此查询仅在表内没有具有相同reply_id 的行时才会提交。

编辑:我怎么做才能继续输入数据?它与重复键有关吗?代码:

if (isset($_POST['submit'])) {
    $blah = $_POST['id'];
    $errors = array();
    if (isset($_POST['comment'])) {
        if (empty($_POST['comment'])) {
            $errors[] = 'Error, try again!';
        }

        if (strlen($_POST['comment']) > 400) {
            $errors[] = 'Comment must be in a 10 to 400 characters range!';
        }

        if (empty($errors)) {
            $q2 = mysqli_query($link, "INSERT INTO reply VALUES($blah, _comment, now(), '$id')");
            header("Location: topic.php?id=$blah");
        } else {
            echo 'You have ' . (count($errors) + 1) . ' errors in your form:<br />';
            foreach ($errors as $error) {
                echo $error . '<br />';
            }
            echo '<a href="new_topic.php">Try again</a>';
        }
    }

形式:

<form action="topic.php" method="POST">
    <textarea name="comment" class="field span6" rows="3"
              placeholder="Content..."></textarea><br/><br/>
    <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
    <div><input type="submit" name="submit" placeholder="Reply"/></div>
</form>
4

2 回答 2

1

好的,如果你想在你的代码中重复条目。

header("Location: topic.php?id=$blah");从您的代码中删除。页面再次提交到同一页面,导致每次提交时都会执行查询。

与未显示多条评论的问题有关

$res2 = mysql_fetch_array($q2) /* will return only one row */

您将不得不遍历所有结果,使用

while($res2 = mysql_fetch_array($q2)) {

echo $res2['reply_content'] /*will print each content*/

}
于 2013-10-12T10:30:40.337 回答
0

如果reply_id是表的主键,则无法插入重复项。

如果您确实想要重复reply_id的 s,请更改(或删除)主键。

于 2013-10-12T10:36:25.287 回答