Ich habe ein Plugin, das aus irgendeinem Grund die Daten in wirklich nervigen Orten speichert (3 verschiedene Tabellen unter den gleichen Namen usw.).Mehrere Datensätze zu einem Ausgang zusammenfügen
Ich habe 4 Felder zu den cms hinzugefügt, die ich in einem Element wiedergeben möchte. Funktion, Name, Text und ein Bild. Das Problem ist, alle 4 sind unter dem gleichen Namen in der Datenbank data
gespeichert. Der einzige Unterschied zwischen ihnen ist ihre field_id
.
Also habe ich die richtige Abfrage, die alle Daten erhält ich brauche, ist meine Frage wie folgt:
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'
)
Die obige Abfrage gibt die gleiche nur mehrfach Zeile mit Daten Anderssein . Wenn ich also die Ausgabe wiederhole, wird das Element mehrmals statt nur einmal angezeigt.
Wie kann ich die Ausgabe zusammenführen?
Meine gesamte Schleife mit der Abfrage, wie ich es haben jetzt:
<?
//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;
?>
Resultierende in der folgenden:
Fehle ich Ihren Punkt oder Sie sollten einfach 'GROUP BY ct.id' und' GROUP_CONCAT' in der 'SELECT' Klausel? –