找到生日并将对象存储到会话中

时间:2015-04-13 06:15:37

标签: php session cookies mysqli

你好,我试图找到网站上注册成员的最近生日,并将查询结果存储到会话中,以便下次不需要执行查询,以减少页面加载时间和服务器负载

我有这个代码

   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是不错的选择。

1 个答案:

答案 0 :(得分:0)

看起来您正在尝试将整个数组放入会话var中,只需将其分解即可。 $ result = mysql_fetch_array($ GettheBIrthdaYS); $ _SESSION [&#39; dob&#39;] = $ result [&#39; dob&#39;];

同样限制1,除非您想要超过1条记录,如果您这样做,则需要更改所有内容。