Esto es lo que hice, y utilicé la respuesta que marcó, pero creo que hay algunas cosas que cambiar allí. en la página principal (que desea actualizar si algo cambia en la base de datos). creé una tabla en mi configuración llamada base de datos, en esta tabla creé una fila que llamaba rowCounter. there rowCounter se está actualizando cuando los números de filas en la tabla que ha marcado han cambiado. así que mi código está en dos bloques. uno que me da el número de la configuración> rowCounter y el otro es la secuencia de comandos que me da el número actual en la tabla. si no son iguales, entonces actualizo la página.
por lo que este es el primer archivo que necesita. llamarlo
script_to_return_latest_pageGenID.php
// here you will make you connection query.
$result = mysql_query("SELECT rowCounter FROM setting WHERE `id`='2'");
$update = mysql_fetch_assoc($result);
echo implode($update);
$count=mysql_query("SELECT `id` FROM log_".$datestamp."")or die(mysql_error);
$number = mysql_num_rows($count);
//echo $number;
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
if($number != $numberFromSetting)
{
mysql_query("UPDATE setting SET `rowCounter`='$number' WHERE `id`='2'")or die(mysql_error);
}
En la página principal que va a escribir los dos bloques de código que he escrito, lo pones antes del script.
$countFromSetting=mysql_query("SELECT `rowCounter` FROM setting WHERE id='2'")or die(mysql_error);
$numberFromSetting=implode(mysql_fetch_assoc($countFromSetting));
Después de este código se pone el script que va a consultar cada pocos segundos la página php, comprobar si los números no son iguales que se actualice la página.
var pageGenID = "<?php echo $numberFromSetting; ?>";
var processUpdate = function(response) {
var x=response;
//console.log(pageGenID); by removing the remarks you will see the compared numbers all the time.
//console.log(x);
if (pageGenID != x)
{
//replace_current_data_with_new_via_ajax();
pageGenID = response;
window.location.reload();
}
}
var checkUpdates = function()
{
serverPoll = setInterval(function()
{
$.get('script_to_return_latest_pageGenID.php',
{ lastupdate: 1 },
processUpdate, 'html');
}, 5000) };
$(document).ready(checkUpdates);
En primer lugar, jQuery añade camino demasiada sobrecarga para una tarea tan simple como esta. Si va por la ruta AJAX, simplemente use un objeto 'XMLHttpRequest'. Además, como dije en mi publicación, mantenga cosas como 'pageGenID' * en el lado del servidor * debido a un mayor riesgo de javascript o inyección de MySQL. – Qix
en tu php necesitas repetirlo y no devolver –
@OfirAttia: Sí, el eco fue hecho por el script PHP que generó el JavaScript. Debería haber dejado eso en claro. – Kalessin