Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] consulta mysql que se repita cada X segundos

Estas en el tema de consulta mysql que se repita cada X segundos en el foro de PHP en Foros del Web. Hola muy buenas. Me gustaría pedirles ayuda para solventar un problema con sql. La cuestión es que debo hacer que un div específico cambie su ...
  #1 (permalink)  
Antiguo 13/05/2013, 14:13
 
Fecha de Ingreso: mayo-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
consulta mysql que se repita cada X segundos

Hola muy buenas.
Me gustaría pedirles ayuda para solventar un problema con sql.

La cuestión es que debo hacer que un div específico cambie su estado en función de una variable almacenada en la base de datos. Esta variable puede cambiar en cualquier momento así que debe comprobarse su estado cada pocos minutos.

Para explicarme mejor.

En la base de datos tengo un campo en una tabla llamado Estado con posibles valores 0 y 1.
Y en el html tengo un div, cuyo valor cambiará, si el estado es igual a 0, pondrá desactivado y si es uno, pondrá activado.

He buscado la forma de hacer una consulta de forma repetitiva cada x segundos, pero he sido incapaz de lograrlo solamente con php.

¿Me podrían orientar o tal vez darme un pequeño ejemplo de como podría hacerlo?

Un saludo y gracias por adelantado!
  #2 (permalink)  
Antiguo 13/05/2013, 14:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: consulta mysql que se repita cada X segundos

Claramente con PHP únicamente no es posible, si lo que necesitas es que cambie el estado sin recargar tu pagina necesitas hacerlo usando Ajax.

Del lado de PHP seguiría siendo igual, una consulta normal, aquí no habría nada que cambiar.

Entiendo tu incapacidad al quererlo hacer solo con PHP pero como te he dicho, para lo que intentas usar solo PHP no es suficiente.

Muestra lo que tienes ya hecho y explica la parte que no entiendes.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/05/2013, 14:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: consulta mysql que se repita cada X segundos

Lo mejor y menos obtrusivo sería que checaras con AJAX cada X tiempo, la otra forma más sencilla es que recargues toda la pagina cada X tiempo.

Saludos.
  #4 (permalink)  
Antiguo 14/05/2013, 00:31
 
Fecha de Ingreso: mayo-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: consulta mysql que se repita cada X segundos

Pondré parte del código que llebo hecho, haber si así me podeis orientar algo más, porque mis conociminetos de Ajax son nulos, se que existe y poco mas

Bien, en la página inicial, es donde tengo el div que deseo actualizar si cambiase la variable en base de datos. Como no conocía otra forma, tiré de los recursos que tengo y lo hice con un sistema de variables de sesión, pero si se os ocurre alguna otra forma, lo agradecería muchisimo. Aquí dejo el código.

El div en cuestión sería "alerta".

Código:
<?php session_start();
require_once("scripts/conexion.php");
?>
<html>
<head>
<?php require_once("scripts/retar.php"); ?>
</head>
<body>
<div id="alerta"><?php 
if(!isset($_SESSION['idUsuarioRetante'])){
?>
<h1>Estás desactivado</h1>
<?php
}
else{
?>
<h1>Estás activado</h1>

<?php
}
?>
</body>
</html>
Y desde el script incluido arriba, hacía la consulta y guardaba las variables de sesión necesarias para la actualización (reitero que si teneis cualquier otra idea que no sea con sesion, agreadeceré que me la indiqueis).

Este es el php en cuestión:

Código PHP:
<?php
            
//DESDE ESTA COMPRUEBO EL ESTADO
        
$id_usuario=$_SESSION['id'];
        
$result mysql_query ("select * from retos where usuario1 = '$id_usuario'" )
        or die(
"Error en la consulta SQL");
        
$total mysql_num_rows($result);
        
$row mysql_fetch_array $result );
        if(
$total!=0){
             
$id_usuarioRetante=$row["usuario2"];
            
$result2=mysql_query("select * from usuarios where id = '$id_usuario'")
            or die (
"Error en la segunda consulta SQL");    
            
$row2=mysql_fetch_array($result2);
            
            
            
$_SESSION['idUsuarioRetante']=$id_usuarioRetante;
            
$_SESSION['usuarioRetante']=$row['nombre'];
        }
        else{
            if(isset(
$_SESSION['idUsuarioRetante'])){
            
$_SESSION['idUsuarioRetante']="";
            }
            if(isset(
$_SESSION['usuarioRetante'])){
            
$_SESSION['usuarioRetante']="";
            }

        }
?>
El sistema es, se consulta a la base de datos si existe algún registro en la tabla retos para el usuario que tiene la sesión iniciada. Si devuelve algún valor, implica que existe un reto, así que se consulta cual es el otro usuario implicado, se guarda el nombre del mismo en una variable de sesión y se informa al usuario original mediante la alerta de marras.

Os agradezco mucho vuestra ayuda, si necesitáis que aclare cualquier otra cosa, decidmelo por favor.
Un saludo!!
  #5 (permalink)  
Antiguo 14/05/2013, 01:22
pr0
 
Fecha de Ingreso: marzo-2004
Mensajes: 687
Antigüedad: 20 años, 1 mes
Puntos: 28
Respuesta: consulta mysql que se repita cada X segundos

Como ya te han dicho no existe otra manera.

En lugar de decir que tus conocimientos de AJAX son nulos porque no buscas información en internet y aprendes? Todos hemos hecho lo mismo en su momento.

No se como no teneis curiosidad en aprender cosas nuevas, y más todavía cosas tan importantes para el desarrollo web como AJAX.
  #6 (permalink)  
Antiguo 14/05/2013, 01:36
 
Fecha de Ingreso: mayo-2013
Mensajes: 6
Antigüedad: 11 años
Puntos: 0
Respuesta: consulta mysql que se repita cada X segundos

En primer lugar, muchas gracias a todos los que me habeís intentado orientar. Ya he conseguido con ayuda de algunos manuales, conseguir lo que buscaba. Así que mil gracias.

En respuesta a tu sentenciosa opinión señor pr0, si estoy haciendo esto y consulto en foros, es porque si tengo curiosidad y me gusta descubrir cosas nuevas, el problema es que en ocasiones necesito ayuda, no todo es "buscar información en internet y aprender" en ocasiones necesitas orientación, tal vez no sea tu caso...

Así que no valores la actitud de una persona, solo porque realice una pregunta que para tí pueda ser obvia

Un gran saludo!
  #7 (permalink)  
Antiguo 10/06/2013, 12:33
 
Fecha de Ingreso: junio-2013
Mensajes: 14
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: consulta mysql que se repita cada X segundos

Cita:
Iniciado por jontxu6 Ver Mensaje
En primer lugar, muchas gracias a todos los que me habeís intentado orientar. Ya he conseguido con ayuda de algunos manuales, conseguir lo que buscaba. Así que mil gracias.

En respuesta a tu sentenciosa opinión señor pr0, si estoy haciendo esto y consulto en foros, es porque si tengo curiosidad y me gusta descubrir cosas nuevas, el problema es que en ocasiones necesito ayuda, no todo es "buscar información en internet y aprender" en ocasiones necesitas orientación, tal vez no sea tu caso...

Así que no valores la actitud de una persona, solo porque realice una pregunta que para tí pueda ser obvia

Un gran saludo!
Me podrias decir la forma en que lo solucionaste y explicarmelo un poco.

Etiquetas: cada, html, mysql, segundos, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:57.