2017-01-26 2 views
3

Я новичок в умении. Я пытаюсь использовать функцию switch и case с smarty. Это код PHP Я используюВыключатель и корпус с шаблонами 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++; 

    } 

Мой вопрос, как я могу применить этот код Smarty? Цените свое время.

+1

Не уверен, что вы хотите сделать здесь точно. Повторить это в Smarty? Отправить данные Smarty? Пожалуйста, добавьте некоторые данные – Machavity

+0

@Machavity да именно для того, чтобы воспроизвести его в smarty. – 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} в smarty для обработки данных.

$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); 
Смежные вопросы