2013-06-19 83 views
0

我有一個非常基本的問題,但不知道如何去做。 如果mysql表中的行數增加,我想刷新頁面。 我已經嘗試了一些不同的東西,如在表中添加一個單獨的列,其值爲(id + 1),如果行數和此值相等則執行刷新。這工作,但隨後開始刷新每5秒鐘,因爲該聲明保持評估爲真。我真正想要的是一個簡單的php mysqli num rows

 if($num_rows changes){ 
// do this 
} 

任何和所有幫助將是巨大的感謝

+0

是你試圖在服務器端表更改時刷新客戶端頁面? – Jimbo

+0

是的。我應該考慮以不同的方式去做嗎? – Ricky

+0

不,只是想確保我理解正確:)這是這種情況Havemonstret已經回答了問題 – Jimbo

回答

5

要檢查INSERT的受影響的行數,DELETE,UPDATE或更換服務查詢,你可以使用

$db->affected_rows(); 

如果您希望將行數與過去的行數進行比較,您必須保存以前的行數(可能在一個會話中)。這完全取決於誰執行查詢。

要獲取表中的行的總數:

SELECT COUNT(*) AS `numrows` FROM `table`; 
1

這將工作:AJAX-> PHP-> MySQL的

$(document).ready(function() { 
    setInterval("ajaxd()",10000); 
}); 

function ajaxd() { 
    $.ajax({ 
    type: "GET", 
    url: "new_rows.php", 
    success: function(msg){ 
    if (msg.HasNewRows) { 
     //new rows -> refresh 
     document.location.reload(true); 
    } 
    } 
}); 
} 

new_rows.php

<?php 
session_start(); 
//perform query & num_rows() => $new 

if ($new > $_SESSION['current']) { 
$_SESSION['current'] = $new; 
return json_encode(array("HasNewRows"=>true)); 
}else{#same with false} 

?>