

お世話になります。どうかご教授お願い申し上げます。

Mysql、php、smartyを利用したサイトを作成しております。Proudct_id毎に表示するページ（smarty）で、以下の様なテーブルtbl_product_checkを使用しproduct_idが同じchecker_nameをsmary側で抽出したいと考えております。

例えば、product_idが533のページではsmarty側で533（zen、joice、john）、そしてproduct_idが514のページではsmarty側で514（james、zen、joice）、同様に532では532（zen、joice）という名前（checker_name）を表示させたいのですが、それに必要となるsmarty、およびphpでの記述方法をご指導頂けませんでしょうか。

*tbl_product_check

(フィールド名)  
product_checker_id  
product_id  
checker_name  
member_id

[code]

            0   533 zen   190    
            1   514 james 189   
            2   533 joice 191   
            3   532 zen   190        
            4   514 zen   190        
            5   532 joice 191   
            6   514 joice 191   
            7   533 john  192   
    
[/code]

* * *

**追記**  
himakuma様、

いろいろと試しておりますが、当フレームワークの記述方法で以下の様な記述にたどり着きました。ただ機能しておりません(エラーは出ませんが、何も表示されません)。どこに問題があるかご指摘頂けませんでしょうか。

PHP：

[code]

    $objFormParam = new SC_FormParam_Ex();
        $product_id = $objFormParam->getValue('product_id');
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $checkerName = $objQuery->getOne('SELECT checker_name FROM tbl_product_check where product_id =  ?', array($product_id)); 
        $results = array();
            foreach ($checkerName as $id) {
                $results[$id['product_id']][] = $id['product_id'];
            }
            return $results;
    
[/code]

SMARTY：

[code]

    {foreach from=$checkerName item=product_id name= checker_name}
        {$checkerName [$checker_name]}
    {/foreach}  
    
[/code]


CC BY-SA 3.0
2016-10-13T04:58:29.330
29515
2016-10-25T05:26:17.260
2016-10-25T05:26:17.260
15068
question
php mysql smarty
Mysql、php、smartyを利用したサイトで情報抽出に関するsmarty、php上での記述方法


いろいろ情報が足りてないのでざっくりとした流れだけ。。。  
１．PHPで表示したいデータを取得、編集  
２．Smartyへデータを渡す  
３．Smarty側で表示したい形にする（プルダウン等）

※requireとかエラーの判定とかは記載してません  
**■PHP**

[code]

    <?php
    $smarty = new Smarty();
    
    １．PHPで表示したデータを取得、編集
    $product_id = $_REQUEST['product_id'];
    $sql = "SELECT checker_name, member_id FROM tbl_product_check WHERE product_id = {$product_id}";
    //PDO等でSQL発行、結果を受取smartyで使用しやすい配列等に編集
    $hyouziDataList = array(
        0 => array('checker_name' => 'zen', 'member_id' => 190),
        1 => array('checker_name' => 'joice', 'member_id' => 191),
        2 => array('checker_name' => 'john', 'member_id' => 191)
    );
    
    
    ２．Smartyへデータを渡す
    $smarty->assign('hyouziDataList',$hyouziDataList);
    
    テンプレートの表示
    $smarty->display('index.tpl');
    ?>
    
[/code]

**■Smarty**

[code]

    {foreach from=$hyouziDataList item=hyouziData}
    ３．Smarty側で表示したい形にする（プルダウン等）
        <li>{$hyouziData.member_id}：{$hyouziData.checker_name}</li>
    {/foreach}
    
[/code]


CC BY-SA 3.0
2016-10-13T09:17:21.710
29523
2016-10-14T00:36:08.933
2016-10-14T00:36:08.933
19001
19001
29515
answer