我有一个SQL表:mytable,as:
id | val1 | val2
-----------------------------------
1 a 567
2 zzx 7678
3 gtft 5435
现在,我有一个php页面 - magic.php,其中包含:
$query = "SELECT * FROM mytable WHERE id='$id'"; // id keeps changing per day(i want this)
$result=mysqli_query($conn, $query);
$data = mysqli_fetch_assoc($result);
echo "Value1 is:".$data['val1']."<br/>";
echo "Value2 is:".$data['val2'];
现在我想要$ query来选择id = 1来启动&amp;然后下一个id,每24小时一次。 当行完成时,它会循环返回以重新启动。
我尝试了很多东西:sleep(),for / while循环,输出缓冲和延迟&amp; CRON JOBS。 但还没有成功。任何猜测,如何实现这一目标?非常感谢您的宝贵时间。
答案 0 :(得分:0)
这个怎么样?
首先,让我们找到开始time()
并将其写下来。
$start = 1469804863;
现在,让我们找到该表中的行数:
$num_rows = mysqli_result(mysql_query("SELECT COUNT(*) FROM `mytable` "),0);
现在,计算天数的差异:
$delta = (time() - $start) / 86400;
现在,让我们找出我们需要的那一天:
$row_number = (int)$delta % $num_rows;
就是这样!现在就选择正确的行!
$row = mysqli_query("SELECT * FORM `mytable` LIMIT {$row_number}, 1");
这样,$ row_number将从0开始并且像1,2,3,4一样增长,直到达到行数,然后再次变为0,1,2,3等等,无限循环
现在,保持简短:
$num_rows = mysqli_result(mysql_query("SELECT COUNT(*) FROM `mytable` "),0);
$row_number = floor((time() - 1469804863) / 86400) % $num_rows;
$row = mysqli_query("SELECT * FORM `mytable` LIMIT {$row_number}, 1");