我在while循环中有一组数据。当我在循环中回显它们时,循环数据与此类似。
if ( !empty($rows) ) {
// bind variables to prepared statement
mysqli_stmt_bind_result($stmt, $userId, $days, $opentime, $closetime, $closestate);
while (mysqli_stmt_fetch ($stmt)) {
echo '<pre>', print_r("$days - $opentime - $closetime - $closestate").'</pre>';
}
}
数据:
Monday - 06.00 PM - 06.00 PM - 0
Tuesday - 05.00 PM - 06.00 PM - 0
Wednesday - 05.00 PM - 05.00 PM - 0
Thursday - 05.00 PM - 05.00 PM - 0
Friday - 03.00 PM - 04.00 PM - 0
Saturday - 03.00 PM - 03.00 PM - 0
Sunday - 03.00 PM - 02.00 PM - 0
在while循环中,我想分隔这样的数据..
$monOpen = // monday open time
$monClose = // monday close time
$monNo = // closed day
$tueOpen = // Tuesday open time
$tueClose = // Tuesday close time
$tueNo = // closed day
.............
and so on for 7 days..
为什么我需要这样做,从while循环外部使用这些值。
从while循环外部我有一些下拉列表和这样的复选框 -
我的选择框 -
<select name="tuesday-open" class="text2">
<option>Open</option>
<?php for($i = 1; $i <= 24; $i++): ?>
<option value="<?php echo date("h.i A", strtotime("$i:00")); ?>" <?php if(isset($_POST['tuesday-open']) && $_POST['tuesday-open']==(date("h.i A", strtotime("$i:00")))) echo ' selected="selected"'; ?>><?php echo date("h.i A", strtotime("$i:00")); ?></option>
<?php endfor; ?>
</select>
我的复选框 -
<input type="checkbox" name="tuesday-closed" <?php if(isset($_POST['tuesday-closed'])) echo "checked";?> /> closed
所以我想在选择框和属性selected=selected
和checked
的复选框中显示提取值。
任何想法都将受到高度赞赏,也欢迎另一种方式。 谢谢。
答案 0 :(得分:4)
正如Ben建议的那样,将它们添加到一个数组中,以便稍后在代码中引用它们。
while (mysqli_stmt_fetch ($stmt)) {
$result[$days] = array(
'open' => $opentime,
'close' => $closetime,
'state' => $closestate
);
}
echo $result['Monday']['open']; // 06.00 PM
要使用select进行此操作,您可以将选择与当前值进行比较。 您需要格式化$i
以使其与数据库条目相媲美。
<select name="monday-open">
<?php for($i = 0; $i <= 23; $i++): ?>
<option<?php echo ($i == $result['Monday']['open'] ? ' selected="selected"' : '');?>><?php echo $i; ?></option>
<?php endfor; ?>
</select>
答案 1 :(得分:2)
试试这个
while (mysqli_stmt_fetch ($stmt))
{
$result[$days] = $opentime.' - '.$closetime.' - '.$closestate
}
print_r($result);