jajaja no, está bien.
Para hacerlo tiempo real del todo necesitarias otro lenguaje, como node...o usar sockets php, como ratchet (rollazo)
Peeeeero hay una solución que en 10 minutos se pone. Y se llama short polling.
Ojo, está función añade una carga adicional a tu servidor que se multiplica expotencialmente por cada usuario que la visita simultaneamente, pero es lo que hay.
La técnica es la siguiente, un código jquery o ajax o como quieras llamarlo preguntará de manera asíncrona cada 10 segundos al servidor si hay informaciones nuevas, el responderá si o no.
Vas a hacer unos cuantos cambios. ¿Puedes subir el archivo pagina_foto?
Te lo explico por encima: Vas a tener que separar la función que saca los datos del html, en la base de datos mysql vas a añadir una columna de ultima modificacion, que será un DATETIME.
La función debe reconocer si alguien la abre normal o mediante AJAX, para eso, yo tengo un código que uso en mis webs
Código PHP:
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest')
$this->is_ajax = TRUE;
else
$this->is_ajax = FALSE;
Ahora, si eso devuelve TRUE, tu pagina_foto.php tiene que hacer la consulta a la base de datos y devolver los datos en formato JSON. Si no es true pues que siga como siempre.
El código ajax es, pues un jquery que saco ahora, pero tiene que ser personalizado a tus necesitades, pues si reconoce cambios debe cambiar el DOM con las cosas nuevas.
Otra cosa, si no quieres volver a tocar, se me acaba de ocurrir que puedes crear un archivo nuevo que tenga simplemente el IF de arriba, la query que saca la información y devuelva el resultado en formado json. Es menos limpio porque se duplica la query pero lo tendrás terminado antes.
Código HTML:
(function pollServerForNewMail() {
$.getJSON('/poll_newmail.php', function (response) {
if (response.newMail) {
alert(
"You have received a letter, good sir. " +
"I will have a quick lie-down and be on my way shortly."
);
}
setTimeout(pollServerForMail, 5000);
});
}());
Esta es una funcion jquery que muestra cada 5 segundos un alert si recibe como respuesta (en formato json ) un array response->newmail->true.