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

Php 如何在每24小时之后从SQL表中选择一个新行,php,mysqli,cron,Php,Mysqli,Cron,我有一个SQL表:mytable,如下所示: id | val1 | val2 ----------------------------------- 1 a 567 2 zzx 7678 3 gtft 5435 现在,我有一个php页面-magic.php,其中包含以下内容: $query = "SELECT * FROM mytable W

我有一个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=“从mytable中选择*,其中id='$id'”//id每天都在变化(我想要这个)
$result=mysqli\u查询($conn,$query);
$data=mysqli\u fetch\u assoc($result);
echo“Value1是:“.$data['val1']”的值“
”; echo“Value2是:”.$data['val2'];
现在我希望$query选择id=1开始,然后每隔24小时选择下一个id。 当行结束时,它将循环返回以重新开始

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

这个怎么样

首先,让我们找出start
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");
这个怎么样

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

Cron作业是您的朋友尝试在另一个表中插入程序所在的行,而不是在循环或Cron作业本身中存储“状态”。mytable中的值是否变化很大?为什么在这里使用javascript/jquery标记?另外,您还需要详细说明为什么您尝试使用的方法对您不起作用。Cron-jobs是您的朋友吗?尝试在另一个表中插入程序所在的行,而不是将“状态”存储在循环或Cron-job本身中。
mytable
中的值变化很大吗?为什么这里有javascript/jquery标记?另外,你还需要详细说明为什么你尝试使用的方法对你不起作用。很棒的逻辑。脱帽致敬:)@luna.romania,对你有用吗?我想如果我的答案不符合逻辑,你可能会认为我的答案是一个赢家。脱帽致敬:)@luna.romania,对你有用吗?我想如果我的答案是正确的,你可能会认为我的答案是成功的