Doppelte einträge ausblenden

Hi,

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.

Wie kann ich das bewerkstelligen?

Wir sollen dir also zeigen, wie du eine if-Bedingung einbaust?!?!? Nicht dein Ernst, oder? Das sind Grundlagen, die man können sollte!

Ja sorry aber ich taste mich da erst mal langsam ran.

[php]$namecache = array();
foreach ($this->data as $arrItem) {
if (
$arrItem[‚text‘][‚partner_main‘] === ‚1‘ &&
in_array($arrItem[‚text‘][‚partner_name‘], $namecache)
) {
continue;
}
$namecache = $arrItem[‚text‘][‚partner_name‘];
}[/php]

Du erweiterst einfach deine IF Bedingung.

Danke aber die doppelten einträge bleiben leider bestehen.

Bei dem code den ich oben geposted habe, wird bei doppelten nur eins dargestellt.

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 )

LG

select distinct dies, das, jenes from tabelle where jenes = 1 group by dies