Autor | Zpráva | ||
---|---|---|---|
Manny Profil * |
#1 · Zasláno: 24. 8. 2009, 10:09:04
Ahoj, pokouším se uložit data z XML, která mají následující strukturu:
<product> <a>a</a> <b>b</b> <c>c</c> <d name="barva/velikost"> <d_varianta value="zluta/s"> <d_varianta value="zelena/m"> </d> </product> <product> <a>a</a> <b>b</b> <c>c</c> <d name="barva"> <d_varianta value="zluta"> <d_varianta value="zelena"> </d> </product> <product> <a>a</a> <b>b</b> <c>c</c> <d name="velikost"> <d_varianta value="s"> <d_varianta value="m"> </d> </product> V prvním případě, kdy c name="barva/velikost" zpracovat umím - na řádek si ulopříslušnou barvu s velikostí (kolik d_varianta value, tolik řádků). Problém ale nastává u těch zbylých 2 variant - potřebuji to uložit do db stejně, jako v prvním případě, avšak zde to potřebuji nějak takto: zluta s zluta m zelena s zelena m Zkouším to zpracovat nějak takhle, ale ten druhý způsob se mi stále nedaří: foreach() { ...zde nacitam obsah elementu a, b, c foreach() { ..zde vnorene elementy (element d) if($variant['name'] == 'barva') { ...zde jsem nejak chtel zpracovat, kdy d name="barva" } elseif($variant['name'] == 'velikost') { ...zde jsem nejak chtel zpracovat, kdy d name="velikost" a pak to ulozit do db, ale nevim jak :/ } if($variant['name'] == 'Barva/Velikost') { ...a tady ukladam hned tu prvni variantu - jde v poradku } } } Kdyby někdo poradit, jak ukládat tu barvu a velikost do tabulky, byl bych rád:) |
||
tiso Profil |
#2 · Zasláno: 24. 8. 2009, 10:50:05
Manny: 2. a 3. produkt majú ten istý názov? Alebo skrátka nie je uvedený jeden z parametrov a pre druhý sa majú použiť všetky možnosti? Poprosím upresniť.
|
||
Manny Profil * |
#3 · Zasláno: 24. 8. 2009, 12:06:35
tiso
Udělal jsem tam ale chybu, správně to XML má vypadat takto" <product> <a>a</a> <b>b</b> <c>c</c> <d name="barva/velikost"> <d_varianta value="zluta/s"> <d_varianta value="zelena/m"> </d> </product> <product> <a>a</a> <b>b</b> <c>c</c> <d name="barva"> <d_varianta value="zluta"> <d_varianta value="zelena"> </d> <d name="velikost"> <d_varianta value="s"> <d_varianta value="m"> </d> </product> Předpokládejme, že v XML jsou 2 produkty a mjí strukturu takovou, jaká tam je uvedena. Potřebuji je uožit do db. U toho prvního produktu to zvládám uložit pomocí explode. Problém ale nastává u toho druhého, kdy nevím jak to zpracovat |
||
tiso Profil |
#4 · Zasláno: 24. 8. 2009, 12:26:56
V tom prípade:
//vytiahnut vsetky farby do pola $param1 //vytiahnut vsetky velkosti do pola $param2 foreach($param1 as $val1){ foreach($param2 as $val2){ //vloz produkt do databazy } } |
||
Lamicz Profil |
#5 · Zasláno: 25. 8. 2009, 00:10:52
Manny: ve well-formed XML by IMHO mel byt root element, ktery obaluje cely XML tree, napr.:
<products> <product> ... </product> <product> ... </product> </products> |
||
Manny Profil * |
#6 · Zasláno: 26. 8. 2009, 13:33:28
Lamicz
??? tiso takhle nějak jsem to chtěl udělat, ale problém nastal s tím ukládáním do pole: foreach() { ...zde nacitam obsah elementu a, b, c foreach() { ..zde vnorene elementy (element d) if($variant['name'] == 'barva') { $pole=Array(); $pole[]=$nactena-hodnota-z-xml; //tak tady se mi ulozila jen ta posledni hodnota vzdycky - byla tam tedy vzdy jen jedna ...zde jsem nejak chtel zpracovat, kdy d name="barva" } elseif($variant['name'] == 'velikost') { ...zde jsem nejak chtel zpracovat, kdy d name="velikost" a pak to ulozit do db, ale nevim jak :/ } if($variant['name'] == 'Barva/Velikost') { ...a tady ukladam hned tu prvni variantu - jde v poradku } } } Nevím kde ta pole přesně definovat, když jsem to pole definoval před podmínkami ještě, tak se mi do něj neuložilo vůbec nic :/ a když v podmínce, tak vždy jen ta poslední hodnota (jak je to v zdrojáku) |
||
Časová prodleva: 15 let
|
0