Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php和Ajax仅更新最近的帖子_Php_Jquery_Mysql_Ajax - Fatal编程技术网

使用php和Ajax仅更新最近的帖子

使用php和Ajax仅更新最近的帖子,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,我在服务器上有一个ajax脚本和一个php文件,可以向数据库中插入新的post,ajax脚本可以向目标php文件中发布,并获得一个作为json数据的响应(作为我的post的HTML数据进行解码和回显),我使用json数据将其附加到div中。但是,我的解决方案会从我的数据库返回整个结果,即我的查询通过mysql\u查询返回的所有帖子。我怎样才能得到最近的结果,或者至少我怎样才能得到最后一篇文章 $(function() { $("#PostItemz").on('submit', functio

我在服务器上有一个ajax脚本和一个php文件,可以向数据库中插入新的post,ajax脚本可以向目标php文件中发布,并获得一个作为json数据的响应(作为我的post的HTML数据进行解码和回显),我使用json数据将其附加到div中。但是,我的解决方案会从我的数据库返回整个结果,即我的查询通过mysql\u查询返回的所有帖子。我怎样才能得到最近的结果,或者至少我怎样才能得到最后一篇文章

$(function() {
 $("#PostItemz").on('submit', function(event){
event.preventDefault()
var formData = new FormData(this);

    $.ajax({
        url: 'inc/modules/post_data.php',
        type: 'POST',
        data: formData,
        success: function (data) {
             //here the data return is my post as html object
            //data is return via echo on another php page
           console.log(data);
           $('#postarea').append(data);
           $("#PostItemz")[0].reset();
           $('.inner-addon, .left-addon, .create-text').hide();
        },
        cache: false,
        contentType: false,
        processData: false
    });

});


  });
这是我的php代码:在返回post数据的服务器上:

        <?php
         function getFollowedGroupPosts($user_id){

        $sql_query = mysql_query("SELECT gid FROM members WHERE uid = '$user_id'");
   //iterate through record set, push records into user defined record_set[] array and return array as json encoded data
                        .
                        .
                        .
                        .
                        .
        $record_set[] = array('gid' => $rows_b['gid'],
                    'pid' => $rows_b['pid'],
                    'post' => $rows_b['post'],
                    'images' => getPostImages($rows_b['pid']),
                    'jImages' => $url_string,
                    'videos' => getPostVideos($rows_b['pid']),      
                    'audios' => getPostAudios($rows_b['pid']),
                    'date' => timeAgo($rows_b['date']),
                    'username' => userIdToName($rows_b['uid']),
                    'filemap_id' => $rows_b['filemap_id'],
                    'group_name' => groupIdToName($rows_b['gid']),
                    'comments' => getComments($rows_b['pid']),
                    'likes' => checkLikeCount($rows_b['pid']),
                    'dislikes' => checkDislikeCount($rows_b['pid']),
                    'post_count' => $row_count_b);


    }

        }
        return $record_set;

使用
mysqli\u insert\u id()
方法获取上次插入的帖子的主键,然后使用该id检索特定帖子并从php脚本返回。

对于任何上次插入的记录,都将通过mysql\u insert\u id获取。如果表包含任何自动增量列,它将返回该值

<?php
$last_id = mysql_insert_id ( mysqli $link )
SELECT * FROM tbl WHERE pid(your primary key) = '$last_id'
?>

注意:不要使用php 5.5.x中不推荐使用的mysql

阅读ORDER BY和LIMIT的工作原理。在阅读了SQL注入方面需要做的事情之后再去做。Order by的可能重复是您需要做的,而不必使用
mysql.*
函数。自v5.5版(2013年6月)起,它们就被弃用,自v7.0版(2015年12月)起被删除。与和一起使用or函数。您的代码容易受到攻击。您应该通过或驱动程序将准备好的语句与绑定参数一起使用。有一些很好的例子。我在为一个遗留系统写东西。。mysql而不是mysqli有什么选择?
选择LAST_INSERT_ID()这是一个mysql查询,所以执行它就像执行其他mysql查询一样,这是一个遗留问题system@Maxwell好的,你可以用这两种方法。
SELECT * FROM `table_name` 
ORDER BY `table_name`.`column_name` DESC
LIMIT 1