在我问这个问题之前,但是还有另一个问题,我被困在这里。我正在尝试在数据库中显示当天的数据,哪一天将与月份中的日期匹配,但我不知道如何进行脚本迭代,如何解决?
我的桌子
| id| Payment | day | Month | Year |
|___|_________|__ ___|_______|_______|
| 1 | Mobile | 2 | 7 | 2018 |
| 2 | Mobile | 3 | 7 | 2018 |
| 3 | Mobile | 4 | 7 | 2018 |
| 4 | Mobile | 5 | 7 | 2018 |
| 5 | Mobile | 8 | 7 | 2018 |
| 6 | Mobile | 9 | 7 | 2018 |
| 7 | Mobile | 10 | 7 | 2018 |
| 8 | Mobile | 11 | 7 | 2018 |
我的查询
$q_day = $this->db->select('*')->from('payment_day')->where('Month', 7)->where('Year', 2018)->get()->result_array();
$day = 31;
for ($x = 1; $x <= $day; $x++) {
foreach($q_day as $row){
if($x == $row['day']){
echo '<td>x</td>';
}else{
echo '<td>-</td>';
}
}
}
我希望结果如下表
| DAY | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | xxxxxx
| | - | x | x | x | x | - | - | x | x | x | x | - | - | 14 | xxxxxx
答案 0 :(得分:3)
在这里您可以创建一个密钥为天的数组,然后使用条件是否循环进行检查。
$q_day = $this->db->select('*')->from('payment_day')->where('Month', 7)->where('Year', 2018)->get()->result_array();
//try create array from loop
$avaiableDays = [];
foreach($q_day as $row){
$avaiableDays[$row['day']] = $row;
}
$day = 31;
for ($x = 1; $x <= $day; $x++) {
if(!empty($avaiableDays[$x])){
echo '<td>x</td>';
}else{
echo '<td>-</td>';
}
}
}
答案 1 :(得分:0)
$q_day = $this->db->select('day')->from('payment_day')->where('Month', 7)->where('Year', 2018)->get()->result_array();
$day = 31;
for ($x = 1; $x <= $day; $x++) {
in_array($x,$q_day){
echo '<td>x</td>';
}else{
echo '<td>-</td>';
}
}