아약스가있는 데이터베이스에서 새 행을 검색하려고했습니다. 페이스 북 채팅에서 일어나는 일과 같은 것입니다. 내가 해왔 던 것은 매 2 초마다 ajax가있는 데이터베이스에서 마지막 열 10 개를 가져와 사용자가 보지 못했던 것을 표시하려고 시도하는 것입니다. ID와 이름의 두 개의 열이 있습니다. 나는 순서가없는 목록을 만들고 각 li 요소 id를 데이터베이스의 id로 설정했습니다. 각각의 li는 한 행에 대한 것입니다. 마지막으로 li 요소의 id를 얻고 ID와 이름이 포함 된 새 li를 추가하면 데이터베이스의 id가 더 큰지 확인합니다. 하지만 몇 가지 이유로 2 초마다 전체 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);
당신이 데이터를 가져 오는하는 문제를 가지고가는 경우에 나는 dB
$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);
단순히 마지막 ID에서 SQL 쿼리를 실행하는 것으로 간주하지 않았습니까? – stevemarvell
쿼리에'LIMIT'을 사용하지 않는 이유는 무엇입니까? 당신이 지금하고있는 방식은 성능 문제가되는 각 아약스 호출에서 데이터베이스의 모든 레코드를 가져옵니다. – Deepak
특정 행 번호의 마지막 행을 반환하도록 채팅 앱을 작성하려고합니다 – Youngestdj