首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP while循环时间

问PHP while循环时间
EN

Stack Overflow用户
提问于 2010-12-29 00:36:50
回答 6查看 494关注 0票数 1

这是我第一次尝试使用面向对象编程。我试图重复数据库中的时隙,但我只得到了一个结果。

时隙表包含:

代码语言:javascript
复制
10:00:00  
10:15:00
10:30:00

在PHP类中:

代码语言:javascript
复制
 class booking {
     function __construct($mysqli) { 

     }

     function get_timeslot() {
         global $mysqli;

         $q = $mysqli->query("SELECT id_timeslot, times FROM timeslot");

         while($r = $q->fetch_array(MYSQLI_ASSOC)) :
             return $r['times'];
         endwhile;

         $mysqli->close();
     }
 }

在网页中显示循环次数:

代码语言:javascript
复制
 $booking = new booking($mysqli);

 <?php echo $booking->get_timeslot(); ?>

结果:

代码语言:javascript
复制
10:00:00
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-12-29 00:39:59

return是返回你的函数的值,因此你只会收到1个返回值。试一试

代码语言:javascript
复制
echo $r['times'].'<br/>';

或

代码语言:javascript
复制
 function get_timeslot(){
     global $mysqli;

     $q = $mysqli->query("SELECT id_timeslot, times FROM timeslot");
     $timeSlots = array();

     while($r = $q->fetch_array(MYSQLI_ASSOC))
     {
         $timeSlots[] = $r['times'];
     }

     $mysqli->close(); 
     return $timeSlots;
 }
票数 4
EN

Stack Overflow用户

发布于 2010-12-29 00:39:56

return语句停止while循环,并退出函数。您需要修改该函数以返回一个时隙数组,或者修改您的逻辑以期望数据库只返回第一个结果。

票数 1
EN

Stack Overflow用户

发布于 2010-12-29 00:43:13

return语句将在被调用后立即退出函数。相反,return应该将项添加到数组中,而不是返回整个数组:

代码语言:javascript
复制
class booking {

 function __construct($mysqli){}

 function get_timeslot(){
  global $mysqli;
  $q = $mysqli->query("SELECT id_timeslot, times FROM timeslot");

      while($r = $q->fetch_array(MYSQLI_ASSOC)) :
       $res[] = $r['times'];
      endwhile;
  $mysqli->close();
  return $res; 
 }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4547585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档