这是我获取mysql表内容的代码
我马上获得了整个数据。
我想在每个查询中加上时间延迟。
$host= "localhost";
$user= "xxxxx";
$pass= "xxxx";
$db="xxxxx";
$connect= mysql_connect($host,$user,$pass);
if (!$connect)die ("Cannot connect!");
mysql_select_db($db, $connect);
$result = mysql_query("
SELECT
*
FROM
url
");
if($result){
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$url = $row['urlss'];
echo '<li>'.$url.'</li>';
}
}
结果输出
row1
row2
row3
row4
我希望以下面的方式获得输出
row1
//wait 5 sec
row2
//wait 5 sec
row3
//wait 5 sec
row4
//wait 5 sec
由于
答案 0 :(得分:2)
使用客户端脚本jquery / javascript来实现它。
PHP代码:
<?php
// code for DB connection and query
echo "<ul id='list-results'>";
if($result){
while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
$url = $row['urlss'];
// display none
echo '<li style="display:none">'.$url.'</li>';
}
}
echo "</ul>";
?>
Jquery的:
// include jquery
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// read all list tlements
$( "#list-results li" ).each(function( index ) {
// fade in each li
$(this).delay(5000*index).fadeIn();
});
});
</script>
答案 1 :(得分:0)
如果您想要延迟,那么您可以尝试PHP的sleep
功能
$host= "localhost";
$user= "xxxxx";
$pass= "xxxx";
$db="xxxxx";
$connect= mysql_connect($host,$user,$pass);
if(!$connect) die ("Cannot connect!");
mysql_select_db($db, $connect);
$result = mysql_query("SELECT * FROM url");
if($result){
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$url = $row['urlss'];
echo '<li>'.$url.'</li>';
sleep(5); //sleep for 5 seconds
}
}
答案 2 :(得分:0)
如果我没有错误,我理解正确你需要使用ob_flush() http://php.net/manual/en/function.ob-flush.php
答案 3 :(得分:0)
您可以使用
foreach ($row as $text) {
//output text, sleep 5 seconds
echo $text;
ob_flush();
flush();
sleep(5);
}
但是在这种情况下,javascript可能是更好的选择,因为您首先将所有数据发送到客户端,并使用javascript间隔每5秒迭代$行。
echo '<script type="text/javascript">
var data = ' . json_encode($rows) . ';
var output = document.getElementById("output-id");
var i = 0;
var no_rows = data.length;
var interval = setInterval(function() {
output.appendChild(document.createTextNode(data[i].columnName));
i++;
if (i >= no_rows) {
clearInterval(interval);
}
}, 5000);
</script> ';