Я пытаюсь получить новые строки из базы данных с помощью ajax. как то, что происходит в чате facebook. То, что я делал, я получаю последние десять строк из базы данных с помощью ajax каждые две секунды и пытаюсь показать те, которых пользователь не видел. У меня два столбца, id и имя. Я создал упорядоченный список и установил каждый id элементов li в id из базы данных. каждый li для строки. затем я пытаюсь получить идентификатор последнего элемента li и проверить, больше ли идентификатор из базы данных, если он затем добавляет новый li, содержащий идентификатор и имя. но по какой-то причине он просто добавляет целых 10 строк каждые две секунды. что я сделал не так? это код, который я использую.показать только последние строки из базы данных с помощью jquery
<ol id="output"><li id="1">test</li></ol>
<script id="source" language="javascript" type="text/javascript">
function reloadw()
{
$.ajax({
url: 'api.php',
data: "",
dataType: 'json',
success: function(rows)
{
for (var i in rows)
{
var row = rows[i];
var lastId = $('ol#output li').attr('id');
var id = row[0];
var vname = row[1];
if(id > lastId){
$('#output').append("<li id="+id+"><b>id: </b>"+id+"<b> name: </b>"+vname+"</li>");
}}
}
});
} setInterval(reloadw,2000);
это то, что я использую в получении данных из БД
$result = mysql_query("SELECT * FROM $tableName ORDER BY id");
$data = array();
for($i=0;$i<=9;$i++){
$row = mysql_fetch_row($result);
$data[] = $row;
}
echo json_encode($data);
Вы не считаете, что просто запустили sql-запрос из последнего id? – stevemarvell
Почему вы не используете 'LIMIT' в своем запросе? То, как вы сейчас делаете, будет извлекать все записи из базы данных при каждом вызове ajax, что является проблемой производительности. – Deepak
Я пытаюсь написать приложение для чата, поэтому возврат последней строки определенного количества строк не будет – Youngestdj