我目前正在寻找一种方法来拆分数据库,以便在60分钟左右后发送消息。我有一个从数据库返回超过1000行的表,并希望将它们分成50组。我将很感激如何实现这一目标的一个例子。谢谢。
答案 0 :(得分:0)
您可以创建一个导航到类似以下内容的脚本:
runner.php?start=0&limit=50
此页面将从第0行开始,并执行50次重复。经过50次重复后,它会回响:
<script>setTimeout(function() {
window.location='runner.php?start=50&limit=50';
}, 3600000)</script>
其中start=50
为$_GET['start'] + $_GET['limit']
您需要打开浏览器窗口。
答案 1 :(得分:0)
您可以使用array_chunk
:
$chunks = array_chunk($results, 50);
foreach ($chunks as $i => $chunk) {
if ($i != 0) {
sleep(3600); // Pause an hour except at the beginning
}
foreach ($chunk as $row) {
// Do what you want with the row
}
}
不要在网页上执行此操作,因为浏览器会超时等待结果。但您可以在CLI脚本中执行此操作。