2011-09-10 17 views
0

次のように私はPHPスクリプトを持っている:のforeachのphp-のsmartyヘルプ

$sql = " 
     SELECT 
      * 
     FROM 
      tbl_messages 
     WHERE 
      msg_sender_id = '$this->UM_index' 
    "; 
    $res = $this->db->returnArrayOfObject($sql); 
    $this->assign_values('sent_messages',$res); 

そして、私は、検索テンプレートで:

{foreach name = feach key = indx item = k from = $sent_messages} 
{$k->msg_sender_id} 
{$k->msg_subject} 
{/forach} 

私は上記の2つのフィールドがretrievすることができます。しかし、フィールドsender_idmessage_sender_nameは、getDetails($id)から取得できます。

私の質問は、スマートテンプレートにsender_nameフィールド(配列)をどのように割り当てることができますか?

答えて

1

また、getDetails($ id)関数によって返されるmessage_sender_nameを持たせたいと思っていますか?

結果をループして各行にmessage_sender_nameをフェッチする必要があります。このような何か:

私が正しい場合は、あなたが今、あなたのテンプレートファイルに{$k->msg_sender_name}経由SENDER_NAMEにアクセスすることができます。

しかし、SQL文でJOINを使用することをお勧めします。したがって、sender_nameに対して別のリクエストを行う必要はありません。

+0

返信ありがとうございます。しかし、「C:\ wamp \ www \ social \ PEAR \ pager \ Jumping.phpの152行目で最大実行時間が30秒を超えました」と表示されます。 – Nitish

+0

あなたの投稿をあなたのgetDetail()関数の内容とJumping.phpのコードから編集できますか? – Voles

+1

あなたが提案したようにテーブルにJOINを使用しましたが、現在は動作しています。ありがとう – Nitish