Ich habe folgende for each schleife aus meinem cms:
[CODE]<?php
$namecache=array();
foreach ($this->data as $arrItem):
if (in_array($arrItem['text']['partner_name'], $namecache)) { continue; }
$namecache[] = $arrItem['text']['partner_name'];
?>
<?php endforeach; ?>[/CODE]
Falls ich jetzt nicht total daneben liege, werden da namen vergleichen und sollten welche doppelt sein, nur ein name ausgeben?
Ich möchte allerdings, dass nur der name ausgegeben wird, der bei der variable „$arrItem[‚text‘][‚partner_main‘];“ den wert „1“ hat.
Und was hindert dich daran, das selber einzubauen bzw. zu korrigieren. Ein Forum ist nicht dafür da, Grundlagen zu vermitteln.
Was steht da:
[PHP]if (
$arrItem[‚text‘][‚partner_main‘] === ‚1‘ &&
in_array($arrItem[‚text‘][‚partner_name‘], $namecache)
) {
continue;
}[/PHP]
Ich würde sagen, d.h. wenn $arrItem[‚text‘][‚partner_main‘] = 1 ist und wenn $arrItem[‚text‘][‚partner_name‘] im Array $namecache ist, dann führe die Schleife fort. Das willst du aber nicht.
Vielleicht war es der falsche ansatz, ich habe mir überlegt, dass man das auch über mysql lösen kann.
Noch mal zur erklärung:
ich habe eine tabelle „partner“ und eine spalte „partner_name“, soweit werden alle items angezeigt aber es kann sein, dass es auch mal doppelte items gibt und ich möchte wenn es mehrere items mit dem selben namen gibt, dass der eintrag angezeigt wird der den wert „partner_main=1“ hat.
Aber irgend wie macht das mein sql code nicht.
SELECT *, COUNT(partner_name)
FROM partner WHERE partner_main=1
GROUP BY partner_name
HAVING ( COUNT(partner_name) > 1 )