2017-01-26 8 views
3

나는 똑똑하다. 나는 switchy 및 case 함수를 현명하게 사용하려고 노력하고있다. 이것은 내가Smarty 템플릿이있는 스위치 및 케이스?

$i=1; 
while ($row = mysqli_fetch_array($sql)){ 

    switch($i%8){ 

      case 1: 
      case 2: 
       //DO Something Here 
      break; 
      case 3: 
      case 4: 
      case 5: 
      case 6: 
      case 7: 
      case 0: 
       //DO Something Else Here 
      break; 
     } 
    $i++; 

    } 

내가 멋지에이 코드를 적용 어떻게 내 질문 사용하는 PHP 코드 무엇입니까? 시간을 내 주셔서 감사합니다.

+1

여기 정확히하고 싶은지 확실하지 않습니다. Smarty에서 이것을 복제 하시겠습니까? Smarty에 데이터를 보내시겠습니까? 약간의 세부 사항을 추가하십시오. – Machavity

+0

@Machavity yes 정확하게 똑똑하게 복제하십시오. – Jordyn

+0

나는 그걸 찔렀다. 그러나 당신의 질문은 너무 모호하여 당신에게 확실한 답을 줄 수 없다. 나는 이것이 [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378)라고 생각합니다. – Machavity

답변

5

Smarty에서 복제하는 것이 가장 좋은 방법인지 잘 모르겠습니다. Smarty의 개념은 컨트롤러 내부에서 이와 같은 논리를 유지하는 것입니다. 또한 Smarty 내에서 데이터를 Smarty로 완전히 변환해야합니다. 즉, 데이터를 두 번 반복해야합니다. 대신, 나는 array과 같은 구조체에 데이터를 만들고이를 Smarty로 전달합니다. 간단하게 {foreach}을 사용하면 데이터를 반복 처리 할 수 ​​있습니다.

$data = array(); 
$i=1; 
while ($row = mysqli_fetch_array($sql)){ 

    switch($i%8){ 

      case 1: 
      case 2: 
       $data[$i][] = $row; //DO Something Here 
      break; 
      case 3: 
      case 4: 
      case 5: 
      case 6: 
      case 7: 
      case 0: 
       $data[$i][] = $row; //DO Something Else Here 
      break; 
     } 
    $i++; 

    } 
$smarty->assign('data', $data);