entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

cuenta atras en php

buenas, estoy intentando hacer una cuenta atras con php almacenando los datos en una base de datos mysql de manera que no se pueda alterar por parte del usuario y he conseguido desarrollar el siguiente codigo`<?php

if($form=1){
define('DB_SERVER','xxx');

define('DB_NAME','xxxx');

define('DB_USER','xxxx');

define('DB_PASS','xxx');

$con = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
mysql_select_db(DB_NAME,$con);
$tiempoactual= time();

function tiempo($tiempo) {

$sql = "INSERT INTO tiempo(tiempo)"." VALUES ('$tiempo')";
    $rec = mysql_query($sql);
    echo "completado";
}

tiempo($tiempoactual);
$a1=mysql_query("SELECT*FROM tiempo WHERE numero='1'");
$a2=mysql_num_rows($a1);
$consulta=mysql_query("SELECT*FROM tiempo");
$a3=mysql_data_seek($consulta,$a2-1);
$consulta2=mysql_fetch_array($consulta);
$consulta3=$consulta2["tiempo"];
$resta=$tiempoactual-$consulta3;
$var=0;
while($resta<=300){
        echo "wait";
        $espera=300-$resta;
        echo $espera;
        echo "<br>";
        $seconds=1;
        $retraso=sleep ( $seconds );
        $tiempoactual=time();
        $resta=$tiempoactual-$consulta3;

}
}else{
    echo "error";
}
?>`

el problema es que php no se actualiza en tiempo real y solo se muestra la pagina una vez que se ha ejecutado todo el codigo, alguna solucion para esto? muchas gracias de antemano
PD: podeis ver el resultado del codigo en www.pruebabitcoins.webatu.com

1 Respuesta

2votos

white Puntos75880

Hola @oscar rodriguez, para realizar lo que necesitas debes vaciar y forzar la salida del buffer.

un ejemplo básico:

<?php

    $tiempo = time();
    $elapsed = 0;
    $limite = 10;

    while( ($elapsed - $tiempo) < $limite )
    {
        sleep(1);

        $elapsed = time();

        echo $limite - ($elapsed - $tiempo) . '<br>';

        if (ob_get_contents())
        {
            ob_end_flush();
        }

        flush();
    }

?>

0voto

oscar rodriguez comentado

ok muchas gracias lo probare y si no me funciona me tendreis otra vez por aqui preguntando :D

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta