2016-10-18 15 views
-1

何らかの理由で本当に迷惑な場所(同じ名前の3つの異なるテーブルなど)にデータを保存するプラグインがあります。複数のレコードを1つの出力にマージする

要素にエコーしたいCMSに4つのフィールドを追加しました。機能、名前、テキスト、画像。問題は4つすべてがデータベースdataに同じ名前で格納されていることです。それらの唯一の違いはfield_idです。

enter image description here

だから私は、私が必要とするすべてのデータを取得し、正しいクエリを持って私のクエリは以下の通りです:

SELECT ct . * , fe . * , cn . * , dt . * 
FROM web_content ct 
INNER JOIN web_fieldsandfilters_elements fe ON fe.item_id = ct.id 
INNER JOIN web_fieldsandfilters_connections cn ON cn.element_id = fe.id 
INNER JOIN web_fieldsandfilters_data dt ON dt.element_id = fe.id 
WHERE ct.id 
IN (
'46' 
) 

上記のクエリは、データのみが異なっていると、同じ行を複数回返します。 。だから私は出力をループするとき、それはただ1つの時間の代わりに複数の要素を表示します。

どうすれば出力をマージできますか?私は今それを持っているように、クエリと

マイループ全体:

<? 
//Query om referentie op de dienstenpage te laten zien 
$referentie       = " 
SELECT ct.*, fe.*, cn.*, dt.* 
FROM web_content ct 
INNER JOIN web_fieldsandfilters_elements fe on fe.item_id = ct.id 
INNER JOIN web_fieldsandfilters_connections cn on cn.element_id = fe.id 
INNER JOIN web_fieldsandfilters_data dt on dt.element_id = fe.id 
WHERE ct.id IN ('".$contentcr[0]['id']."')"; 
$referentiecon     = $conn->query($referentie); 
$referentiecr     = array(); 
while ($referentiecr[] = $referentiecon->fetch_array()); 
?> 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-12 wow fadeInUp animated animated"> 
      <? 
      foreach($referentiecr as $referentietext){ 
       if($referentietext['field_id'] != ''){ 
        if($referentietext['field_id'] == '8'){ 
         $referentie_images = $referentietext['data']; 
         $ref_pictures = json_decode($referentie_images); 

         if($ref_pictures->{'image'} != ''){ 
          $image = 'cms/'.$ref_pictures->{'image'}; 
         }else{ 
          $image .= ''; 
         } 
        } 
        if($referentietext['field_id'] == '5'){ 
         $naam = $referentietext['data']; 
        } 

        if($referentietext['field_id'] == '6'){ 
         $text = $referentietext['data']; 
        } 

        if($referentietext['field_id'] == '7'){ 
         $functie = $referentietext['data']; 
        } 
        $refoverzicht .= ' 
        <div class="col-md-4"> 
         <img src="'.$image.'" style="max-width:100%;"> 
        </div> 
        <div class="col-md-8"> 
         <blockquote> 
          <p style="font-size: 14px;"> 
          '.$text.' 
          <br> 
          <em>– '.$naam.' – '.$functie.'</em> 
          </p> 
         </blockquote> 
        </div>'; 
        } 
       } 
    echo $refoverzicht; 
?> 

以下に結果として得られる:

enter image description here

+0

あなたの意見が紛失していますか、 'SELECT'節で' GROUP BY ct.id'と 'GROUP_CONCAT'をsseするだけですか? –

答えて

0

が、私は特にあなたの場合を除き、クエリ・レベルで方法を考えることはできません列を選択してエイリアスを付けます。例えば。 ct_field_idをct_field_idとして選択してください....

関連する問題