2017-01-26 8 views
3

私はスマートに新しいです。私はスマートなスイッチとケース関数を使用しようとしています。 これは私が使用して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 yes正確にそれをスマートに複製してください。 – Jordyn

+0

私はそれを刺すようにしましたが、あなたの質問はあまりにも漠然としています。私はこれが[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem/66378#66378) – Machavity

答えて

5

Smartyで複製するのが一番良いとは思いません。 Smartyのコンセプトは、このようなロジックをコントローラ内に保つことです。さらに、Smarty内でこれを行うには、データを完全に生のままSmartyに変換する必要があります。つまり、データを2回ループする必要があります。代わりに、私は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); 
関連する問題