jquery — обновляет только последние сообщения с использованием php и Ajax

у меня есть сценарий ajax и файл php на сервере, который вставляет новое сообщение в базу данных, сценарий ajax может отправлять сообщения в целевой файл php и получать ответ в виде данных json (который декодируется и отображается как данные HTML, являющиеся моими сообщениями) ), который я использую, чтобы добавить к div. однако мое решение возвращает весь результат из моей базы данных, то есть все мои сообщения, которые мой запрос возвращает через mysql_query. как получить только последние результаты или, по крайней мере, как получить только мой последний пост;

$(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: на сервере, который возвращает данные поста:

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

как сделать асинхронные вызовы ajax в php и какой запрос я использую на стороне сервера, чтобы вернуть последние сообщения, отличные от уже опубликованных на моей странице

0

Решение

Для любой последней вставленной записи будет получен mysql_insert_id. Если ваша таблица содержит какой-либо столбец AUTO_INCREMENT, она вернет это значение.

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

Также вы можете сделать это, используя лимит и порядок

SELECT * FROM `table_name`
ORDER BY `table_name`.`column_name` DESC
LIMIT 1

Примечание: не используйте mysql Это устарело от php 5.5.x

1

Другие решения

использование mysqli_insert_id() метод, чтобы получить первичный ключ последней вставленной записи, а затем использовать этот идентификатор для получения этой конкретной записи и возврата из сценария php.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector