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