Autor Zpráva
siok
Profil
Zdravím, poradí mě někdo jak vypsat jen jednou hodnotu <COLOR_CODE>.
<SHOP>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-012X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-012X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-012X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-013X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-013X</COLOR_CODE>
.....
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-013X</COLOR_CODE>
.....
</SHOPITEM>
</SHOP>


K výpisu teď používám:
$xml=simplexml_load_file(...);
foreach ($xml->SHOPITEM as $SHOPITEM):

endforeach;

Něco jako při MySQL dotazu se používá GROUP BY:-)

Díky
Taps
Profil
siok:
projdi hodnoty cyklem, hodnoty ulož do pole a pole vyfiltruj pomocí array_unique
RastyAmateur
Profil
siok:
Ještě mě napadlo do toho foreach dát
!in_array($shopitem, $toPole) ? $toPole[] = $shopitem : continue;
$toPole je to pole s těma unikátníma color_codama...

Mělo by to snad fungovat...
Keeehi
Profil
RastyAmateur:
Chtěl jsi asi napsat !in_array

siok:
Pokud víš, že to je vždy seřazené, dal by se kód [#3] ještě zrychlit. Stačilo by porovnávat vždy jen s posledním prvkem.
RastyAmateur
Profil
Keeehi:
Děkuji za upozornění, opraveno... Psal jsem to z tabletu, vždy se soustředím převážně na hledání znaků na klávesnici a snažím se co nejvíce omezit překlepy :)
siok
Profil
Díky za pomoc.

Měl bych ještě jednu prosbu:-)

mám XML
<SHOP>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
<ID>1</ID>
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
<ID>2</ID>
</SHOPITEM>
<SHOPITEM>
<COLOR_CODE>1013-011X</COLOR_CODE>
<ID>3</ID>
</SHOPITEM>
</SHOP>

a potřebuji vypsat jen tagy mezi SHOPITEM s daným ID
anonymníí
Profil *
siok:
Řešení je vcelku jednoduché, pokud rozumíš prvnímu a třetímu příspěvku (tedy objektové syntaxi PHP). Co jsi zkoušel?
siok
Profil
anonymníí:Zatím jsem nic nezkoušel
Kcko
Profil
anonymníí:Zatím jsem nic nezkoušel

Děkujeme za informaci, tak něco zkus a pak se ptej.
RastyAmateur
Profil
Kcko:
V tom případě kód z [#3] předělej na standartní podmínku, přičemž ji trochu rozšiř.

Možná by to šlo vložit přímo do toho ternálního operátoru (nebo jak se tomu nadává), ale nejsem si jist, zda-li by to fungovalo. Toto řešení bude asi snažší...
Kcko
Profil
RastyAmateur:
Eh?
RastyAmateur
Profil
Kcko:
Omlouvám se, překlik, má být reakce na sioka. Ta tlačítka byla blízko nad sebou :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: