1

多対多の関係を持つDBに3つのテーブルを作成しました。for variable $refernece_keysin my DB は、DB 内のすべての関連フィールドを返す必要がありますが、最初に割り当てられたフィールドのみを返し、他のフィールドは無視します。

e.g. page1 should return keys_href: id's 1, 2, 3, 4, 8, 10, 15 - however it only returns id:1 page2 should return keys href: id's 3, 4, 5, 7, 8, 11 - however it only returns id:3

ARRAY に何か問題がありますか?

$SQL = 
   "SELECT  * FROM learn_more AS lm 

LEFT JOIN  learn_more_to_reference_key AS lmtrk 
        ON  lm.id = lmtrk.learn_more_id 

LEFT JOIN  reference_keys AS rk 
        ON  rk.keys_id = lmtrk.reference_key_id

     WHERE  lm.page_title = '$this_page'";

$result = mysql_query($SQL) or die(mysql_error()); 

 while ($db_field = mysql_fetch_array($result))
{   
        $id                =     $db_field['id'];
        $main_title        =     $db_field['main_title'];
        $main_content     =     $db_field['main_content'];
        $reference_keys   =     $db_field['keys_href']; 
        $sub_title        =     $db_field['sub_title'];
        $sub_content      =     $db_field['sub_content'];
}

------------------------------------------------>編集

私のPHPビューページはテンプレートです

<div id="content">  
<div class="section_frame">


<div class="section_title">
<?php echo $main_title; ?>
</div>

<div class="section_content">
<?php echo $main_content; ?>
</div>


<div class="section_content_ref">
<span class="hl_reference"><u>key references:</u></span> 
<?php echo $reference_keys; ?>
</div>

<div class="sub_section_title">
<?php echo $sub_title; ?>
</div>

<div class="sub_section_content">
<?php echo $sub_content; ?>
</div>

だから基本的には自分の価値観をエコーアウトしたいだけです..

4

1 に答える 1

1

ああ、私の最初の考えは、while ループがすべてのレコードに対して実行されるため、終了後は最後のレコードしか利用できないということです...ただし、最初のレコードしか表示されません。echo $idwhile ループ内に追加すると、すべての ID が出力されますか? また、例を完成させるためのコードがさらにある場合は、それが役立ちます。

$items = array();
while ($db_field = mysql_fetch_array($result))
{   
    $id                =     $db_field['id'];
    $main_title        =     $db_field['main_title'];
    $main_content     =     $db_field['main_content'];
    $reference_keys   =     $db_field['keys_href']; 
    $sub_title        =     $db_field['sub_title'];
    $sub_content      =     $db_field['sub_content'];
    $items[$id] = array($main_title, $main_content, $reference_keys, $sub_title, $sub_content);
}

上記は、各レコードの id がレコード情報を指す配列を作成します。それはあなたが目指していることの線に沿っていますか?

于 2012-07-11T21:41:33.383 に答える