如何在每24小时后从SQL表中选择一个新行


How do i select 1 new row from SQL table, after every 24 hours

我有一个SQL表:mytable,作为:

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来启动&然后是下一个id,每24小时一次。当这些行结束时,它会循环回来重新开始。

我尝试了很多东西:sleep(),for/while循环,带延迟的输出缓冲&CRON作业。但还没有成功。你猜怎么着,到底是怎么做到的?提前感谢您的宝贵时间。

这个怎么样?

首先,让我们找出启动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");