Estoy queriendo crear una lista que se muestra lentamente en la pantalla, pero parece que todas las rutinas se completan antes de que se presenten.
Por ejemplo:
for ($x = 0; $x <= 25; $x++) { echo "The number is: $x <br>"; sleep(1); }En mi opinión, esto debería mostrar "El número es 1", esperar 1 segundo y luego mostrar "El número es 2". En realidad, espera 25 segundos y muestra todos los números, ¡excepto que parece haber un error allí también, ya que solo muestra los primeros 10!
EDITAR: también probé "usleep" que tuvo el mismo efecto
No me preocupa el error, pero ¿cómo agrego algo de espera, por favor?
EDITAR: A continuación, sigo teniendo el mismo problema con este código.
for ($x = 1; $x < 5; $x++) { $st=$_SESSION['st']=$x; echo '<iframe class="findlist" name="iframefindlist" id="findlist" src="findmelist.php"></iframe>'; ob_flush(); flush(); usleep(3000000); }Y luego el "findmelist.php" es
<body> <?php $st=$_SESSION['st']; $conn = new mysqli("localhost", "acc", "pw", "db"); ?> <div class="findlist1"> </div> <div class="findlist2"> <?php $result = mysqli_query($conn,"SELECT * FROM tablename WHERE number='$st'"); while($row = mysqli_fetch_array($result)) { $fname=$row['fname']; $lname=$row['lname']; } echo $fname.' '.$lname; ?> </div> <div class="findlist3"> </div> </body>Primero debe vaciar el búfer de salida; de lo contrario, la respuesta solo se envía cuando finaliza la ejecución.
ob_flush(); flush();Entonces, para su código, eso significa:
for ($x = 0; $x <= 25; $x++) { echo "The number is: $x <br>"; ob_flush(); flush(); sleep(1); }Para obtener más información, consulte la siguiente referencia .