这是我第一次尝试使用面向对象编程。我试图重复数据库中的时隙,但我只得到了一个结果。
时隙表包含:
10:00:00
10:15:00
10:30:00在PHP类中:
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();
}
}在网页中显示循环次数:
$booking = new booking($mysqli);
<?php echo $booking->get_timeslot(); ?>结果:
10:00:00发布于 2010-12-29 00:39:59
return是返回你的函数的值,因此你只会收到1个返回值。试一试
echo $r['times'].'<br/>';或
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;
}发布于 2010-12-29 00:39:56
return语句停止while循环,并退出函数。您需要修改该函数以返回一个时隙数组,或者修改您的逻辑以期望数据库只返回第一个结果。
发布于 2010-12-29 00:43:13
return语句将在被调用后立即退出函数。相反,return应该将项添加到数组中,而不是返回整个数组:
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;
}
}https://stackoverflow.com/questions/4547585
复制相似问题