你好,我试图找到网站上注册成员的最近生日,并将查询结果存储到会话中,以便下次不需要执行查询,以减少页面加载时间和服务器负载
我有这个代码
if(!isset($_SESSION['dob']) || $_SESSION['dob'] =='' ){
$frndlist=$_SESSION['friendlist']; //comma seperated list of friends
$CurrMOnth= date('m'); // this month
$BirthDLAST0n=date('d', strtotime(' - 7 day'));
$BirthDGRATEn=date('d', strtotime(' + 7 day'));
$GEttheBIrthdaYS=mysqli_query($connection,"select id,name,dob from members
where (id IN ($frndlist)) and (MONTH(dob) = '$CurrMOnth') and
(DAY(dob) > '$BirthDLAST0n' and DAY(dob) < '$BirthDGRATEn' )
order by dob desc limit 10");
$_SESSION['dob']=$GEttheBIrthdaYS;}else{
$GEttheBIrthdaYS=$_SESSION['dob'];
}
while($theBdaYSreYAr90=mysqli_fetch_array($GEttheBIrthdaYS)){ //print }
但是这里的问题是查询的结果存储在会话中但是mysqli_fetch_array永远不会接受它说错误。 这是问题,因为我试图将对象存储到会话中 是否有任何替代方法可以将结果存储到某些内容中,以便不再需要执行相同的查询....
并且生日剧本也不好,它会显示DOB处于最后或几个月的人的生日。
请告诉我如何将查询结果存储到会话或cookie中 由于cookie存储的尺寸非常小,我不认为cookie是不错的选择。
答案 0 :(得分:0)
看起来您正在尝试将整个数组放入会话var中,只需将其分解即可。 $ result = mysql_fetch_array($ GettheBIrthdaYS); $ _SESSION [&#39; dob&#39;] = $ result [&#39; dob&#39;];
同样限制1,除非您想要超过1条记录,如果您这样做,则需要更改所有内容。