2016-06-13 2 views
0

setInterval()을 사용하여 데이터베이스에서 60 초마다 데이터를 가져 오려고합니다. 내 데이터베이스에서 '메시지'와 '받는 사람'을 되 찾을 수 있기를 원합니다.PHP에서 setInterval 함수를 사용하여 데이터베이스에서 데이터를 다시 얻는 방법

내 데이터베이스 테이블 '메시지'

id, message,     to,   from  status 
1, 'hello',    'Rebecca', 'Erwin'  1 
2, 'see you soon',   'Veronica', 'Erwin'  0 
3, 'the party was awsome', 'Erwin', 'Rebecca' 1 
4, 'can you make it?',  'Veronica', 'UNKNOWN' 1 



<?php 
    $con = mysqli_connect('localhost','user','pass','my_db'); 
    if (!$con) { 
     die('Could not connect: ' . mysqli_error($con)); 
    } 

    $sql="SELECT * FROM mesage where status=1"; 
    $result = mysqli_query($con,$sql); 
?> 

function run_script() { 
 
    cont_m = 0; 
 
    cont_s = 0; 
 
    s = document.getElementById("seconds"); 
 
    m = document.getElementById("minutes"); 
 
    window.setInterval(
 
    function() { 
 
     if (cont_s == 60) { 
 
     cont_s = 0; 
 
     cont_m++; 
 
     //get array from database, how do I run the query here get the array and display arrays? 
 
     m.innerHTML = cont_m; 
 
     if (cont_m == 60) { 
 
      cont_m = 0; 
 
     } 
 
     } 
 
     s.innerHTML = cont_s; 
 
     cont_s++; 
 
    //}, 1000); every second 
 
    }, 100);// every 100 miliseconds for example purpose 
 
}
<body onload="run_script()"> 
 
    <p> 
 
    <span id="minutes">0</span>:<span id="seconds">0</span> 
 
    </p> 
 
</body>

+1

매초마다 ajax를 사용하여 서버를 요청하는 것은 확실하지 않습니다 ... 전이중 통신을 원할 경우 대신 웹 소켓을 참조하십시오. 또는 최소한 긴 폴링 아약스를 검색하고 interval은 사용하지 말고 재귀 적 메서드를 호출하는 타임 아웃을 사용하십시오. –

답변

0

당신은 클라이언트 측 JS 기능을 사용하여 서버 측에 타이밍 이벤트를 실행하려고? 나는 그것이 아주 좋은 생각이라고 생각하지 않는다. 다른 방법으로이 작업을 수행해야합니다. 필요한 것은 cron 또는 이와 유사한 것입니다.

관련 문제