[英]Remember MYSQL query results for use in PHP page
我设置了一个PHP页面,以生成从MYSQL查询生成的大量数据。
使用此数据,它将根据系统中当前的用户数量创建一定数量的表头(以html表示)。
foreach($usersFromMYSQL as $row)
{
echo
"
<th>$someUserData
<th>Col Y
<th>Col Z
";
}
然后,还将根据系统中发生的事件数,在表中填充一定数量的行(以html表示)
foreach ($eventsFromMYSQL as $row)
{
echo
"
<tr>
";
foreach($usersfromMYSQL as $inner_row)
{
echo
"
<td>$someUserSpecificEventData1
<td>$someUserSpecificEventData2
<td>$someUserSpecificEventData3
";
}
}
该代码已大大简化,但格式与我的网站相同。
我的问题是我在Raspberry PI上运行我的网站,并且由于数据库中用户和事件的数量,该页面的加载时间(预期)很慢。 当前,每次您访问该页面时,都会再次请求所有这些数据,并且(至少就我所知)不涉及任何形式的缓存或记忆。
数据可能每天都在变化,这意味着如果要在页面上缓存页面,我希望它仅在那一天的剩余时间内保持缓存状态,因为第二天可能会有不同的结果。
我的问题是,有什么解决方案可以防止在每次访问该页面时重新加载此数据,但要确保至少每天重新加载一次?
我假设您使用MVC系统,则可能会这样完成:
请注意,一旦为当前日期生成页面,脚本就不应再次生成页面。
编辑1
如果您使用的是单个文件,
<?php
$file_name = date('d_m_Y').".php";
if(file_exists($file_name))
{
//load
$page_data = file_get_contents($file_name);
}
else
{
//generate page here
//
$page_data = "....... YOUR HTML PAGE DATA HERE ........ ";
//save it
file_put_contents(date('d_m_Y').".php");
}
//show page to user
echo $page_data;
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.