La Web del Programador: Comunidad de Programadores
 
    Pregunta:  60989 - ACTUALIZAR DATOS EN PAGINA PHP
Autor:  carlos alberto
hola...agradezco si pueden ayudarme..

pasa lo siguiente: Estoy realizando un sistema web.

existe una base de datos..en la cual hay una tabla producto que tiene los precios de cada producto...lo q hace el sistema es cargar estos productos en la pag para q cualquier usuario pueda observar los precios....pero, existen tambien usuarios que pueden modificar los precios (admin)..lo que necesito es que cuando se modifique un precio de la tabla producto en la base de datos...... esta actualizacion pueda ser vista por todos los usuarios que esten utilizando la pag...es decir q para todos los que esten utilizando el sistema se les recargue su pagina y puedan ver los datos actualizados, sin necesidad de hacer refresh individualmente "F5"....

se que podría actualizar la pag dando un intervalo de tiempo..pero esta solucion esta prohibida, necesito una forma que reaccione ante el evento de que se inserte o actualice un dato en la base de datos....

gracias por su tiempo....

  Respuesta:  Carlos Alberto
Hola...soy el mismo que formulo la pregunta....bueno lo que quiero es primeramente ...gracias diego por la respuesta y pasa q no se como contestarte directamente asi q contesto a la pregunta suponiendo q podrias leerlo....

bueno la idea q planteaste en tu respuesta me parecio muy interesante y creo que me podria ser de gran ayuda....pero pasa q estoy apenas iniciandome en php y aun estoy con dudas ......

se que para actualizar automaticamente una pagina utilizaria por ej:

<meta HTTP-EQUIV="refresh" content="10; url=http://www.example.com/index.php">

tu propones q llame a una funcion creo...pero como llamaria a esa funcion automaticamente.....si para la pag..dego anotar en url:www....
comoo haria para llamar a la funcion....

y si...si puedes ayudarme con codigo fuente te lo agradeceria bastante.....

  Respuesta:  Diego
Hola Carlos, buen día, he leído tu pregunta y se me ocurrió una idea...
Ya que no podés hacer que la página tenga un refresh automático con un intervalo de tiempo, lo que se me ocurrió que podrías hacer es insertarle ese intervalo de tiempo PERO en vez de que se refresque la página, que llame a una función (qué función te preguntarás, bueno).

suponiendo lo siguiente:

DB nn
----
TABLA
t_productos
----
c_id
c_desc
c_precio
c_fecha_modificacion
----

-----------------.----------------------.----------------------.-----------------------

EN LA PAGINA WEB

<table>
<tr><td>RS('c_desc')<input type="hidden" value="RecordSet('c_fecha_modificacion')" id="RecordSet('c_id')" name="produ"/></td></tr>
</table>

----------.---------------.--------------.------------------.-----------------

EN LA FUNCIÓN

podrías obtener todos los inputs con el name "produ", generar un ciclo que vaya obteniendo cada ID de cada objeto, buscar en la base de datos ese producto (mediante el ID) y compara la fecha de modificacion de la DB (que sería la última cuando se hace la modificación) y la fecha de modificación que tiene el input escondido...

Para qué ?

Si vos cargás la página a las 2am del 5/5/2009, la fecha de modificación del producto va a ser la última que tenga, cada diez minutos (por decir) corre la función, entonces supongamos que un admin actualiza un producto, el campo en la DB cambia a 9am del 5/5/2009, si la fecha de modificacion de la DB es mayor a la del input, entonces, actualizas la página.

...

Es algo medio loco, quizás, pero me parece que se puede poner en práctica; te respondí algo así nomás quizás no detalle mucho la función, si necesitas algo de código avisame.

Espero te sirva !!