Php 如何仅在提交查询时显示成功消息?

Php 如何仅在提交查询时显示成功消息?,php,mysql,submit,Php,Mysql,Submit,这是一个简单的代码,但我不明白我的错误在哪里。当我单击提交时,我想在表单下显示成功消息,但消息始终保留在那里。当我进入表单所在的页面时,消息位于表单下方。如何仅在查询成功时将其取出 <?php $posted = false; if(isset($_POST['add'])) { $posted = true; $email = $_POST['email']; $name = $_POST['name']; $rate = $_POST['rat

这是一个简单的代码,但我不明白我的错误在哪里。当我单击提交时,我想在表单下显示成功消息,但消息始终保留在那里。当我进入表单所在的页面时,消息位于表单下方。如何仅在查询成功时将其取出

<?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>

也许这不是一个专业和好的解决方案,但如果你在文章结束后用$email和$name或其他参数进行查询,效果会很好。如果结果不是空的,那么您可以将结果或只是一条简单的消息也输入到输出中

更换

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

     else
    die(mysqli_error());
 }

 ?>


也许你必须把{}放在你的第一个if后面,直接放在下面:

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

如果由于任何原因没有执行查询,则显示错误并停止。 您可能会考虑添加开发模式变量或常量,因为MyQuiLyError消息只对开发人员有价值,而且内容不适合用户的眼睛。无论如何:

替换:

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

     else
    die(mysqli_error());
 }    
?>
mysql错误在发生的地方被处理。 仅当成功发送时,才会显示成功消息

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

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

你知道这里没有连接语句,对吗?。。。您通常会提交一个由表单创建的日期。这通常是数据库中自动设置的值。除此之外,忽略缺少准备好的语句,这段代码也很好
<?php
    if($posted){
    if($k)
        echo "Thank you for your comment!";

     else
    die(mysqli_error());
 }    
?>
if($posted === true) {
    echo 'Thank you for your comment!';
}
if($posted === true) {
    header('Location: success-message-page.php');
    exit;         
}