INSERT后,SELECT不会从DB检索更新的数据

时间:2013-08-09 13:26:34

标签: php jquery mysql ajax

在一个页面上,我向自己发送AJAX请求。在使用PHP成功获取此请求之后,我在一些MySQL数据库中向表“some_table”添加了新记录。之后在同一个成功函数中,我从这个表中选择数据并通过JQuery在页面上显示。问题是显示了所有旧记录,但没有显示我刚刚添加的记录:

$.ajax({
    url: 'http://somesite.com', 
    type: "POST",
    data: ({param1: value1, param2: value2, act: "I"}),
    success: function(data){
        <?php $mysqli = new mysqli("some_server", "some_database", "some_login", "some_password"); 
              $query = "INSERT INTO some_table VALUES ("'.$_POST["param1"].'","'.$_POST["param2"].'")";
              $mysqli->query($query);
              $mysqli->close();
        ?>
        alert("New record was added");
        <?php echo '$("#left_region").html(\'\');';
              $mysqli = new mysqli("some_server", "some_database", "some_login", "some_password"); 
              $result = $mysqli->query("SELECT some_column1, some_column2 FROM some_table"); 
              while($obj = $result->fetch_object()) { 
                  echo '$("#left_region").append("<p class=\"some_class\"><a href=\"#\">'.$obj->some_column1.'</a></p>");';
              } 
              $result->close();
              $mysqli->close();
        ?>
    }
});

有人能提示如何解决吗?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

+1给Jason P。

如果页面已经加载,您无法期望页面再次执行代码

以此为例:

客户端:

$.post("some_url.php",{param1: value1, param2: value2, act: "I"},
      function(response){
         if(isNaN(response)==="true")
             $("#left_region").html(response);
         else
             alert("An error ocurred");
      }
)

服务器端:

    <?php
       $mysqli = new mysqli("some_server", "some_database", "some_login", "some_password"); 
       if($_POST['act']){
              $query = "INSERT INTO some_table VALUES ("'.$_POST["param1"].'","'.$_POST["param2"].'")";
              $ins=$mysqli->query($query);
                  if(!$ins || $mysqli->error){
                    echo 1;
                  }else{
                    $last_inserted_id=$mysqli->insert_id
                    $query=$mysqli->query("SELECT some_column1, some_column2 FROM some_table where some_column='$last_inserted_id'");
                     echo $query->fetch_assoc();
                   }
       }
    ?>

尝试这样的事情(如果有人发现错误,请更正,谢谢)。