2016-10-18 41 views
-1

我得到一个插件,出于某种原因将数据保存在真正烦人的地方(3个不同的表格在相同的名称下)。合并多个记录到一个输出

我添加了4个字段到我想在元素中回显的cms。功能,名称,文字和图像。问题是所有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' 
) 

上述查询同一行多次只用数据是不同的返回。所以当我循环输出时,它会多次显示元素,而不是一次。

如何合并输出?

我与查询整个循环,因为我有现在:

<? 
//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'? –

回答

0

我不能确切地说,在查询级别,除非你想办法选择列并给他们一个别名。例如。选择ct.field_id作为ct_field_id ....