foreach문이 돌때마다 정보가 바뀌었으면 좋겠어요. 채택완료

안녕하세요 질문이 있어서 글을 올려 봅니다. 

제가 지금 아래와 같이 만들었는데요, foreach문이 돌때마다 $daily[$i]; 이 매번 달라 졌으면 좋겠는데 지금은 계속 동일하게 나옵니다. controller쪽을 여러번 바꿔보고 있는데 마땅히 좋은 방법이 떠오르지 않아 질문글 올려 봅니다. 감사합니다~~1794555495_1632811169.7853.png

 

view

Copy
<?php

foreach ($posting as $detail) {
    if ($detail->posting_type == 0) {
        ?>
<tr>
            <input  type="hidden" name="posting_type[]" value="0">
            <td><input  type="hidden" name="report_day[]" value="<?=$detail->report_day?>"><?=$detail->report_day?>일</td>
            <td><input  type="hidden" name="hospital_id[]" value="<?=$detail->hospital_id?>"><?=$detail->hosp_name?></td>
            <td name="last_month"><input  type="hidden" name="last_month[]" value="<?=$detail->last_month?>"><?=$detail->last_month?>개</td>
            <td name="total"><input  type="hidden" name="total" value="<?=$detail->total?>"><?=$detail->total?>개</td>
             <?     for($i=0;$i<$maxDay;$i++){     ?>
             <td name="posting_day"><?php echo $daily[$i]; ?>
             </td>
            <?        }            ?>
            <td name="last_month"><?=$detail->last_month?>개</td>
        </tr>
<?php
    } //if
} //foreach
?>
 

 

 

controller

Copy
$arr = array();
     for($i=0; $i<5; $i++){
       $arr[$i] = rand(1, $maxDay);
                                                         $nalja9 = "$thisY-$thisM-$arr[$i]";
                                                        $yoeil = date('w' , strtotime($nalja9) );

                                                    if($yoeil==0||$yoeil==6){
                                                    //    print_r('   주말                '); 
                                                        $i--;
                                                        continue;
                                                        }

       for($j=0; $j<$i; $j++)
       {
         if($arr[$i] == $arr[$j])
         {
           $i--;
           break;
         }
       }  
     }
    sort($arr);


$result=array();
                for($day=1; $day<=$maxDay;$day++){  
                         if(in_array($day, $arr)){
                            array_push($result, "1");
                          } else {
                            array_push($result, "");
                          }
                }

 

    $data['daily'] = $result;

     $this->load->view('posting',$data);
 

답변 1개

채택된 답변
+20 포인트

view 에서 $daily값 선언이 보이지 않고 

controller 쪽에서 $data 에 배열선언이 보이지 않네요

 

1. 컨트롤러 $data변수 확인 (제대로 들어가있는지 확인)

2. array_push 로 daily 를 넣었으면 view 에서도 $detail-> daily 형태로 뿌려주기

순서대로 디버깅 해보시기 바랍니다

 

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

넵!! 답변 감사드려요!! 우선 지금 controller에서 원하는 만큼 담긴거 확인했고 view에 알맞게 정보를 전달해서 보여주기만 하면 되는 상황입니다. 그런데 지금 그 부분이 잘되는 상황인데 혹시 도움 좀 주실수 있을까요..? 바쁘시면,, 그냥 패스하셔도 됩니다. 감사합니다~~

view
[code]
//여기 foreach 써보고 있는데 잘 되지 않네요,,,
<? for($i=0;$i<30;$i++){ ?>
<td><?php echo $daily[$i]; ?> </td>
<? } ?>
[/code]

//컨트롤러는 거의 동일합니다..
[code]
for($t=0;$t<2;$t++){
$arr[] = array();
for($i=0; $i<5; $i++){
$arr[$i] = rand(1, $maxDay);
$nalja9 = "$thisY-$thisM-$arr[$i]";
$yoeil = date('w' , strtotime($nalja9) );

if($yoeil==0||$yoeil==6){
// print_r(' 주말 ');
$i--;
continue;
}

for($j=0; $j<$i; $j++)
{
if($arr[$i] == $arr[$j])
{
$i--;
break;
}
}
}
sort($arr);
//array_push($arr,$arr[$t]);

//print_r($arr);



$result=array();
for($day=1; $day<=$maxDay;$day++){
if(in_array($day, $arr)){
array_push($result, "1");
} else {
array_push($result, "");
}
}
print_r($result);
}
[/code]

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고