如何在我提交查询时显示成功的消息?

时间:2014-11-23 15:50:56

标签: php mysql submit

这是一个简单的代码,但我无法理解我的错误在哪里。我想在单击提交时在表单下显示成功的消息,但消息始终保持在那里。当我在表单中输入表单的消息时。如何在查询成功时将其取出?

<?php
  $posted = false;
  if(isset($_POST['add']))
  {
   $posted = true;
    $email = $_POST['email'];
    $name = $_POST['name'];
    $rate = $_POST['rate'];
    $comment = $_POST['comment'];
    $dth = date("Y-m-d H:i:s");
    $q = "INSERT INTO reviews(email, name, rate, comment, date_created) VALUES ('$email', '$name', '$rate', '$comment', '$dth')";
    $k = mysqli_query($con,$q);
    }
 ?>
<body>
<h1>Leave a review</h1>
<div class="error-conteiner">

</div>
<div class="clear"></div>
<form action="" method="post" class="form-content">
    <div class="left">
        <div class="field">
            <label>E-mail <span class="required">*</span></label>
            <input type="text" value="" name="email" class="required-field" data-validate="email"/>
        </div>
        <div class="clear"></div>
        <div class="field">
            <label>Name</label>
            <input type="text" value="" name="name"/>
        </div>
        <div class="clear"></div>
        <div class="field">
            <label>Rate</label>
            <select name="rate">
                <option value=''>Choose rate</option>
                <option value='1'>1</option>
                <option value='2'>2</option>
                <option value='3'>3</option>
                <option value='4'>4</option>
                <option value='5'>5</option>
            </select>
        </div>
    </div>
    <div class="left">
        <label>Comment <span class="required">*</span></label>
        <textarea name="comment" class="comment required-field"></textarea>
    </div>
    <input type="submit" value="Send" class="btn" name="add" />

</form>
<?php
    if($posted){
    if($k)
    echo "Thank you for your comment!";

 else
    die(mysqli_error());
 }

 ?>
</body>
</html>

4 个答案:

答案 0 :(得分:0)

也许这不是专业而且很好的解决方案,但如果您在帖子之后使用ex进行查询,则效果很好。 $ email和$ name或其他参数。如果结果不为空,那么您可以将结果或简单消息也放入输出中。

答案 1 :(得分:0)

替换

<?php
    if($posted){
    if($k)
        echo "Thank you for your comment!";

     else
    die(mysqli_error());
 }

 ?>

<?php
if($posted===true){
    if($k) echo "Thank you for your comment!";
     else die(mysqli_error());
}
?>

答案 2 :(得分:0)

也许你必须在第一次之后放置{}

答案 3 :(得分:0)

直接在下面:

$k = mysqli_query($con,$q);

添加:

if(!$k) {
    die(mysqli_error());
}

如果查询未执行,无论出于何种原因,请显示错误并停止。 您可以考虑添加开发模式变量或常量,因为mysqli_error()消息仅对开发人员有价值,而内容不适合您的用户。无论如何:


替换:

<?php
    if($posted){
    if($k)
        echo "Thank you for your comment!";

     else
    die(mysqli_error());
 }    
?>

使用:

if($posted === true) {
    echo 'Thank you for your comment!';
}

处理mysql错误,发生错误。 成功发送后,仅显示成功消息。

也可以在成功时进行标题重定向。但这取决于你喜欢什么。

if($posted === true) {
    header('Location: success-message-page.php');
    exit;         
}
相关问题