PHP: compruebe la database mysql cada 10 segundos para cualquier nueva fila

Estoy haciendo un chat php y estoy comenzando la parte de la database de comprobación php. Entonces, cuando un usuario escribe algo en el chat, se registra en la database MySQL, ¿cómo puedo verificar la database cada 10 segundos para que el chat de un usuario se actualice con nuevos posts de otros usuarios? Sé que puede usar una request de Ajax para una página con un intervalo, pero quiero que el php esté en la misma página, en lugar de tener que usar numerosas páginas. Este es el código para verificar la database

<?php $con = mysqli_connect('host','user','pass','database'); $query = mysqli_query($con,"SELECT * FROM `messages`"); while ($row=mysqli_fetch_assoc($query)) { $user = $row['user']; $message = $row['message']; echo 'User: ',$user,' Message: ',$message; } ?> 

Gracias de antemano a todos!

Esto es lo que necesitas. Necesitamos establecer el time para la recarga automática de ajax. No pongas todo en una sola página. Porque debes volver a cargar la página para actualizar los datos. Esa es una mala solución.

Llamar a jQuery Ajax Solicitar cada X minutos

Use el progtwigdor de events MySQL.

El siguiente enlace lo guiará a través de.

http://www.9lessons.info/2012/10/mysql-event-scheduler.html .

Creo que la mejor opción en tu caso.

Haga un time durante 30 segundos y revise el file db por segundo, una vez que encuentre un logging mientras se está rompiendo, también se romperá cuando transcurran 30 segundos.

 $sec = 1; while($sec <= 30) { if(has record) Send to the user; $sec++; sleep(one sec here); } 

Use dormir durante 10 segundos para revisar cada 10 segundos …

AJAX es probablemente la solución más simple. Puede realizar una request AJAX en la misma página en la que se está ejecutando su código PHP, si realmente lo desea.

 (function check() { $.get('mypage.php', function(data) { doSomethingWith(data); setTimeout(check, 5000); // every 5 seconds }); })(); 

PHP no tiene una function setInterval. Aunque estoy seguro de que puede usar una crontask para automatizarla en el server, también puede lograr esto con un simple JavaScript.

El concepto que está tratando de lograr se conoce como Short Polling. Lo que quiere hacer es tener una function setInterval en Javascript que haga constantemente requestes AJAX a su file PHP que realiza la verificación de nuevos posts en la database. Su PHP debe devolver esa información a su secuencia de commands donde puede simplemente llenar la pantalla del usuario.

También hay Long Polling donde simplemente mantiene la connection y tiene un setTimeout para esperar a que lleguen los posts. Puede encontrar más información usted mismo y si tiene alguna pregunta, puede volver aquí.

Un buen video sobre esto:

https://www.youtube.com/watch?v=wHmSqFor1HU

Espero que esto ayude.