它是用PHP编写的。 我的if工作正常,但我的其他没有回音。 $ start和$ end是工作变量。
select coalesce(t1.date_time1,t2.date_time2) as Date_Time ,
case when t1.date_time1 = t2.date_time2 then 'True' else 'False' end as Is_Match
from table1 t1 full outer join table2 t2 on t1.date_time1=t2.date_time2
答案 0 :(得分:2)
您应在if语句之前声明$start
和$end
变量,并将option
标记放在if statement
之前,并在if statement
之后关闭它< / p>
<select name="trip" class="select-trip">
<?php
foreach ( $wp_trips as $trip ) {
$start = date_i18n("d/m/Y", strtotime($trip->start_date));
$end = date_i18n("d/m/Y", strtotime($trip->end_date));
?>
<option value="<?php echo $trip->remote_ID; ?>">
<?php
if ($trip->available && $is_day_trip){
echo $start;
} else {
echo $start . ' T/M ' . $end;
}
?>
</option>
<?php
}
?>
</select>
答案 1 :(得分:0)
此代码中的问题是$ start和$ end仅在该if语句中具有作用域。为了使$ start和$ end的值在if语句之外,显然应该在if语句之外进行变量声明。
答案 2 :(得分:0)
例如,您可以这样做:
foreach ($wp_trips as $trip) {
$checker = $trip->available && $is_day_trip;
$start = '';
$end = '';
if ($checker) {
$start = date_i18n("d/m/Y", strtotime($trip->start_date));
$end = date_i18n("d/m/Y", strtotime($trip->end_date));
}
if ($checker && !empty($start)) {?>
<option value="<?php echo $trip->remote_ID; ?>">
<?php echo $start;?>
</option>
} else {
echo $start . ' T/M ' . $end;
}
}