Stránka: 2 z 3
| [ Príspevkov: 71 ] | 1, 2, 3 |
Autor | Správa |
---|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Ja len pre istotu, že či to takto riešiš aj v tom tvojom systéme A na iframe nevidím stále nič zlé, i keď som nevidel tú konkrétnu stránku, ale samozrejme nemusím ju zobrazovať celú. Preto som napísal "stiahni to osobitným súborom" - stiahnem len to, čo chcem zobraziť (áno, vyparsujem to, ale iba jeden celý nadradený element) a tú časť si naštýlujem podľa seba. Škodlivý kód neriešim, lebo zobrazujem len časť webu (asi nejakú tabulku položiek), kde nič iné ako html určite nie je. A keď je, nič mi nebráni to prečistiť (odstrániť script tag a javaskriptové atribúty) Ďalej mi nič nebráni toto zobrazenie cachovať, takže keď vypadne stránka (timeout dám na napr 2 sekundy), zobrazím poslednú úspešnú podobu. A keďže iframe sa loaduje asynchronne, web to nespomalí, práve naopak, zrýchli
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Ano riesim, ale mam to tam vsetko osetrene od moznych chyb, cize preto je ten parser pre jeden portal 3-4 vecsi. Jasne ze ak by to bola jedna stranka tak budis, ale ja som predpokladal ze ten mokusov link bude normalna html stranka, lebo som uz odtial nieco take raz videl, je tam aj strankovanie navyse. Ano da sa to aj tak ako pises, ale ked sa zmeni nieco v html, nahodou ti prestane fungovat css ktore prepisuje design, tak mas zas rozbitu stranku v tom iframe, cize php parser je zas lepsi, lebo to budes mat stale tak isto s tou poslednou verziou, ale cez iframe by si musel potom tiez stale zistovat ci tam nie je zmeneny class pri nejakom dive, takze je to o tom istom, len navyse musis prepisovat css, cez php parser nie, spravis to v dizajne svojho webu, ale pri akejkolvek zmene ti to prestane fungovat v jednom aj v druhom pripade tak naco si stranku kazit iframom, aspon moj nazor, mozno sa v niecom pletiem.
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Ak niečo zmenia v mojom riešení, tak všetky informácie ostanú zobrazené, len si to znovu prispôsobím, ak sa mi to nebude páčiť. Ak tam niečo zmenia tebe a budeš trebárs akurát na dovolenke, tak si pár dní bez informácií. Takže záleží aj na tom, ako veľmi ti vadia výpadky.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Ak mas ale nejaky pekny dizajn, tieto stahovene data v nom a zrazu sa ti zacne zobrazovat nejaky hnus, tak to tiez nie je nieco extra a pri parsovani zas kym budem teda na dovolenke tak sa tam bude zobrazovat posledna funkcna verzia ale s mojim peknym dizajnom stale a bez vypadku, zas tu neriesime bankove operacie, ci nieco podobne, ale zoznam z autobazaru, ktory sa aktualizuje raz za cas predpokladam a ked je mokus na dovolenke tak ho asi nebude nejako zasadne ovplyvnovat a tym padom aj keby tam bol vypadok, tak tam je stale posledna funkcna verzia. Cize je to vec pohladu ci pozeras na to, ze mas pohar poloplny alebo poloprazdny lebo v pripade len vlastnej css verzie ak by si to stahoval, tak tam to tiez predsa budes nejako parsovat data aby si vytiahol len danu cast ktoru zobrazis cez iframe, ale co ked sa dana cast cela zmeni, tak sa ti nacita aj tak len nejaka posledna verzia ak si to tam spravis, cize zostanes na tom tak isto na tej dovolenke.
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Ja viem, že každý má svoju pravdu, ale nedá mi to, aj tak sa mýliš Bavme sa teraz o situácií, kedy potrebujem len zobrazovať aktuálne informácie na svojom webe niekde v sidebare ako widget. Dajme tomu, že sú to posledné pridané inzeráty na autobazar.eu. Ty to spravíš parserom, takže si vyparsuješ názov inzerátu (tam je značka, typ vozidla...), fotku a parametre vozidla. Takto sparsuješ tabulku vozidiel a vypíšeš ich k sebe na web. Ja to spravím tak, že si vyseknem z html len tú tabulku, naštýlujem aby sa mi to hodilo na web (background color a farby základných tagov budú fungovať vždy, aj keď zmenia neviem čo...) a zobrazím cez iframe. Beží to tri mesiace bez problémov aj u teba aj u mňa. Po troch mesiacoch si povedia, že zrušia názov inzerátu a oddelia značku vozidla do samostatných vlastností (značka, typ). Obaja si to všimneme o 5 dní. Čo sa stane? 1. Ty bežíš otvárať kód a pracne dopĺňaš regexy a nové stĺpce do databáze/dátovej štruktúry/čohokoľvek. Uživatelia sú medzi tým nasr, lebo na tvojej stránke už 5 dní nevidia nové inzeráty. Buď ich vidia bez názvu auta, alebo v horšom prípade 5 dní starú zálohu. Nejaké precento tvojich užívateľov odchádza ku mne. 2. Pozriem sa na to a zisťujem, že vlastnosti mám fasa naštýlované, riadok pre názov zrušili, takže pohoda, ďalej srkám džús cez slamku a čekujem google analytics, že mám nejaký veľký traffic
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.02.14 Prihlásený: 19.01.18 Príspevky: 443 Témy: 9 | 9 |
BX: ako chces zmenit css v iframe? a druha otazka, preco pouzivat iframe ked "si vyseknem z html len tú tabulku" ? vlozis to priamo ako html. alebo som nieco nezachytil?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
V rámci jednoduchosti, bezpečnosti a rýchlosti by som to určite neťahal rovno do html pri loade hlavnej stránky. Miesto toho (ako som písal na začiatku) to urobím v separátnom php súbore, kde môžem využiť timeout na spojenie a do iframe natiahnem ten (čiže do iframe naťahujem mnou pripravený kód, nie pramo ich). No a tam si môžem robiť čo chcem, napr. na začiatok pridať css, vyčistiť javascripty, podhodiť verziu z cache atď.
V takomto prípade moja hlavná stránka vôbec netrpí načítaním nejakých externých dát, pretože sa natiahnu asynchronne a zároveň vždy aktuálne.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
JanoF, vďaka za návod, snáď niečo z toho aj pochopím, inak sa mi robí dosť ťažko so skriptami, ktoré som nevytvoril sám, ale určite mi to pomôže pri štúdiu nových, nepoznaných vecí, mimochodom dostal som od autobazaru aj xml súbory s dátami, obsahujú všetko čo potrebujem, tak teraz sa môžem učiť, ako to spracovať,
momentálny stav je taký, že stránka je hotová v tej mojej prvej verzii s parserom, ale je bez akéhokoľvek zálohovania, čo veru nie je to najvhodnejšie riešenie, v podstate v takejto podobe je stránka funkčná a môže byť funkčná, ale iba do doby, kým sa niečo v zdroji nezmení, ako som už písal, pri výpadku alebo zmenách na zdroji, bude výpadok aj na mojej stránke, nemám zatiaľ možnosť využiť žiadnu poslednú funkčnú verziu, takže idem to zdokonalovať
ešte raz vďaka všetkým za pomoc
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
No vidíš, tak predsa máš feed. Skús použiť to xml, len to pre boha neparsuj Na spracovanie xml nájdeš funkcie priamo v php.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
jasné, vďaka
@JanoF: ten tvoj skript som prezrel iba zbežne, je celkom zrozumiteľný, ale s konečným spracovaním týchto dát by som mal asi dosť problém, musím si to zrovnať v hlave ako ďalej postupovať, a hlavne ktorú variantu ďalej riešiť, asi to najprv skúsim s tým feedom
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Keď máš k dispozícii feed, čo chceš zrovnávať v hlave? Tu nie je o čom... V takom prípade je riešiť nejaké parsovanie html strata času.
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Presne tak, ak mas xml, tak nie je o com
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
tak začal som na tom xml pracovať, dáta už mám v DB, avšak s jedným problémom, z XX obrázkov(môže byť aj viac než 100) mi uloží iba jeden, tu je príklad xml: príklady som výrazne zostručnil, čo sa týka počtu položiek ($row), Kód: <item> <idserver>4068760</idserver> <dir>5451</dir> <pics>5</pics> <image>http://pics.bazar.eu/5451/4068760_1.jpg</image> <image>http://pics.bazar.eu/5451/4068760_2.jpg</image> <image>http://pics.bazar.eu/5451/4068760_3.jpg</image> <image>http://pics.bazar.eu/5451/4068760_4.jpg</image> <image>http://pics.bazar.eu/5451/4068760_5.jpg</image> <safety>|1|5|7|8|9|10|11|19|20|22|23|</safety> </item> a tu script ktorým to ukladám: Kód: $url = "zdrojový link xml"; $xml = simplexml_load_file($url); $con = dbconnect($db_host, $db_user, $db_pass, $db_name); foreach($xml->item as $row) { $idserver = $row->idserver; $dir = $row->dir; $pics = $row->pics; $image = $row->image; $safety = $row->safety; $result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','$image','$safety')" ); } otázkou je, ako spracovať <image>, tak aby to nahralo do DB všetky, skúšal som xml converter a ten tie obrázky uložil všetky a do jednej položky, ale vzhľadom k tomu, že ten converter je obmedzený, tak som sa to rozhodol urobiť ručne podľa vyššie uvedeného scriptu
|
|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Si si vedomy, ze mas X obrazkov a jeden insert? toto mas blbo navrhnute, na obrazky si vytvor dalsiu tabulku kde budes mat stlpce s id daneho inzeratu ktory vytvaras tymto insertom a druhy bude ten tvoj image a takto budes mat X obrazkov s danym ID ktory patri ku konkretnemu inzeratu, alebo potom jedine ze nasukas vsetky obrazky do toho tvojho stlpca image a oddelis ich trebars ciarkou a dalej to tak budes musiet samozrejme aj spracovat na vystupe.
Pouzivaj var_dump aby si videl co sa v premennych nachadaza a az nasledne potom ries samotne vlozenie do db.
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
prepáč, ale v podstate nechápem, ako natiahnem tie obrázky, keď majú rows rovnaký názov? akosi mi dnes nepáli, keby som toto vedel, tak to spracujem hneď v prvom kroku
a nedalo by sa dať do foreach ďalší cyklus pre <image> ?
lebo riešiť to ďalšou tabuľkou asi nebude naj rýchlejšie riešenie, nehovoriac o tom, že celý XML zdroj sa skladá z 11-tich samostatných url, a každé musím nahrať do samostatnej tabuľky, a tiež potom tie dáta z nich prácne pospájať, takže pridať ďalšiu tabuľku? -> už teraz mi z toho vlasy dupkom stoja
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
<item> elementy prechádzaš foreach cyklom, pre <image> musíš mať vlastný vnorený cyklus, aby sa spustil pre všetky obrázky v každom item-e. Prečo to dávaš do viacerých tabuliek? Príznakový stĺpec by ti nepomohol aby stačilo použiť len jednu? Komplikuješ si zbytočne život podľa mňa.
_________________ always is always wrong |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
len pred chvíľkou som sa pýtal, či tam ide vložiť vnorený cyklus, možno aj ide, lenže ja neviem ako, okrem iného stále visím na tom rovnakom názve položky<image>, aj okrem toho s vnorenými cyklami nie som veľmi kamarát,
a ty by si ako komplikoval svoj život, keby ti zdroj dodal dáta v niekoľkých tabuľkách? alebo mám vytvárať zložitý script, ktorý mi dokáže prepojiť tie dodané(pomocné) xml súbory len do jedného(hlavného)? pochybujem, že by som to vôbec dokázal a tiež by som si tým len komplikoval svoj život toto: <safety>|1|5|7|8|9|10|11|19|20|22|23|</safety> potrebuje ďalšiu tabuľku, kde je priradený určitý text k tým číslam, a nie je to jedna položka, ako som písal je ich celkom 11, jeden hlavný a 10 upresňujúcich, ja ich nevytváram, ja ich dostávam a musím spracovať
to len aby si pochopil, prečo si komplikujem život, ale ak máš dobrý tip, tak sem s ním
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
Tak som ti odpovedal, áno, jedno z riešení je vnorený cyklus. Na otázku, ako by som si ja život komplikoval je jednoduchá odpoveď - nekomplikoval. Nevieš robiť ani s najjednoduchším cyklom, hlavne že riešiš krutoprísnu aplikáciu na parsovanie html, ktorá musí byť odolná voči výpadku zdroja z ktorého je nakoniec, len tak mimochodom aj xml. Veľa šťastia ak budeš robiť niečo naozaj vážne, s čím sa aj priemerný programátor stretáva denne. Potom tiež povieš že nie si s tým kamarát tak sa na to vykašleš, nedokončíš a neodovzdáš robotu? Keby som programoval týmto štýlom, nezarobím ani na slanú vodu. Vo svojom vlastnom záujme, ak chceš naozaj vedieť čo a ako sa robí a nielen kopírovať hotové polofunkčné zdrojáky z internetov a pokúšať sa ich nejako upraviť aby z toho nakoniec aspoň približne "vypadlo" to, čo chceš (viď. tvoja predchádzajúca snaha s DOM a html?), by si mal vedieť aspoň základné veci, podmienky, cykly a polia - keď už nič ďalšie, aby si aspoň rozumel tomu, čo kopíruješ keď si sa vzdal ambície napísať si vlastný kód na mieru. Bez toho sa budeš len trápiť aj s vecami na ktoré existuje jednoduché a elegantné riešenie. Tiež by nebolo na škodu poriadne a podrobne popísať, čo máš k dispozícií (štruktúra xml) a čo chceš (kam a v akom tvare dostať výstup, ktoré informácie na to z xml potrebuješ a ktoré sú pre tvoje potreby zbytočné), lebo takto sa ďaleko nedostaneme a bude sa to len zbytočne komplikovať. Vychádzam z toho čo je tu v téme, keď to nenapíšeš, nemôžem vedieť a domýšľať si. Stále si ma nepresvedčil že to riešenie máš dobre navrhnuté. Na to tu predsa sme, aby sme ti skúsili pomôcť, ale musíš chcieť a my musíme mať všetky informácie stručne a prehľadne, nie že to z teba až nakoniec po x stranách snahy a zabitého času vypadne. Všimni si, že o nejakom <safety> píšeš teraz prvýkrát, doteraz si riešil obrázky a už to začína byť pekne neprehľadné. Chcel som ti len pomôcť urobiť to tak, aby si sa nad tým potom nezbláznil, pretože z toho čo si napísal som mal dojem že chceš mať niekde v databáze niekoľko tabuliek pre odkazy na obrázky (11?) a to - hovor si čo chceš, v tomto prípade nie je dobrý spôsob. Máš v téme neporiadok, najprv html, teraz máš už aj xml, tak hurá sláva, možno ani nevieš ako, no úspešne si ho dokázal previesť na php objekty, no bohužiaľ asi ani s nimi nie si veľmi kamarát, však? _________________ Toľko môj názor, poďme byť trochu produktívni... Na začiatok len malá ukážka, aby si videl, aké máš napríklad možnosti v tvojom ťažkom boji. Úprimne dúfam že používaš aspoň normálny editor. Kód som ti okomentoval, tak snáď sa budeš vedieť z neho vysomáriť a aspoň rámcovo pochopíš o čo ide. Ak nie, pýtaj sa, vysvetlíme. Kód: $url = 'cesta k xml suboru'; $xml = simplexml_load_file($url);
// hint#1: skus nasledujuci riadok odkomentovat, spustit a zobrazit si zdrojak vystupu v prehliadaci, mozno sa ti rozsvieti //print_r($xml); exit;
$images = array(); // nejake prazdne pole, hmmm, co s nim?...vyuzijeme na demonstracne ucely
foreach ($xml->item as $item) { // vo vonkajsom cykle mas POSTUPNE kazdy element <item> ako obsah premennej $item // odkazy na obrazky (elementy <image>) su v objekte ulozene ako pole, taaaaaakze aj to musis prechadzat dalsim cyklom v cykle, frstenzi? foreach ($item->image as $image) { // vo vnorenom cykle mas vsetky obrazky ku kazdemu <item>-u ako objekty, co je zbytocne, pretypujes ich teda na retazce... // Ze cooo? ...To je ta zatvorka pred nazvom premennej, explicitne pretypovanie (viac informacii? Hladaj "PHP Type Juggling") $image = (string) $image;
// tu s odkazom na obrazok z premennej $image urob co len chces // ... // ... // trebars ho vloz do pola $images[] = $image; }
// aj tu mozes s <item>-om nieco robit, ale s premennou image uz nie // (v premennej $image ti zostane odkaz na obrazok z poslednej iteracie vnoreneho cyklu, niekedy sa to moze hodit)
}
// odtialto uz nerobis s <item>-om, uz nie si v cykle!
// ta-daaa, aj toto mozes, odkomentuj nasledujuci riadok //print_r($images); // hint#2: zobraz si zdrojak vystupu, bude prehladnejsi
_________________ always is always wrong |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
Citácia: a podrobne popísať, čo máš k dispozícií (štruktúra xml) a čo chceš (kam a v akom tvare dostať výstup, ktoré informácie na to z xml potrebuješ a ktoré sú pre tvoje potreby zbytočné), lebo takto sa ďaleko nedostaneme a bude sa to len zbytočne komplikovať.
v príklade zo včera je podľa mňa jasné o čo mi ide, vyskúšal som tvoj príklad, s touto variantou som už experimentoval, ale neúspešne, je mi zrejmé čo vypíše print_r(), ale ako to dostať do DB, to už je nad moje sily
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Nehnevaj sa, ale začínam súhlasiť s killerom. Ťažko takto pomôcť... Ľudia ti tu dávajú už pomaly hotové kódy a jediné, čo z teba vypadne, je, že si nebol úspešný a že je to ťažké. Killer sa rozpísal a reakcia prakticky nula bodov. Tak ja neviem... Myslel si si, že programovanie je o zlepení pár kúskov kódu a zrazu máš funkčnú aplikáciu, či ako to máme chápať? Očividne máš problémy aj s úplnými základmi, tu je potom ťažko radiť nejaké riešenia. Po teoretickej rovine ti bolo vysvetlené už hádam všetko, stačí to už len dokončiť. Ak aj tak nevieš... Ono je fajn, že chceš kamarátovi vypomôcť, ale ja sa tiež kamarátom neponúkam, že im vypracujem protokol do chemického labáku, keď o tom nemám ani potuchy. Aby sa ti reálne dalo pomôcť, vyzerá to tak, že by ti to musel buď niekto kompletne naprogramovať alebo ťa začať doučovať od úplného začiatku. Toto je prinajlepšom lepenie kusov dokopy.
_________________ C#, PHP, ... |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
ja viem, každý je tu múdry a všetko je za peniaze,
hlboko sa ospravedlňujem, a prepáčte mi, že som vás okrádal o váš drahocenný čas, kým vy ste zatiaľ mohli zarábať ťažké love,
máte len jednu chybu, krátku pamäť, už ste zabudli, že aj vy ste začínali
JanoF, prosím zamkni túto tému, ja už nemám na vás inú prosbu, a na invektívy nie som zvedavý
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
Ak ti nedošlo, že som sa snažil ušetriť hlavne tvoj čas, ktorý nad tým presedíš, tak potom to naozaj nemá zmysel. Rád by som ale videl tie invektívy o ktorých píšeš, než to tu upracem.
_________________ always is always wrong |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
písal som o možných invektívach na môj posledný príspevok, a ak si mi chcel pomôcť, ďakujem ti, všetkým patrí vďaka, ktorí mi pomohli, ale sú tu aj ľudia, ktorí hodnotia človeka bez toho aby ho poznali,
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
Dobre, tak teda možné invektívy ja vidím len jedného ľuda, čo hodnotí ostatných bez toho aby ich poznal, ale radšej nič... Každopádne, téma už nie je už prehľadná a zrejme máš skrytý pocit že sme tu všetci proti tebe. Ak budeš mať konkrétny problém s kódom ktorý som ti poslal, respektíve jeho experimentálnou verziou o ktorej píšeš a budeš chcieť s tým pomôcť, buď prosím taký dobrý a dodaj aspoň chybovú hlášku, ak si nejakú dostal, alebo popis správania konkrétneho kódu, pretože "skúšal som, nefungovalo" nám vážne v ničom nepomôže. Naozaj nemám vešteckú guľu aby som videl kde ti čo nefunguje a ktoré tvoje pokusy kde zlyhali. Ďakujem a ostávam s pozdravom.
_________________ always is always wrong |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
to hodnotenie bez poznanie je nákazlivé písal som predsa, že ten print_r() mi tie obrázky síce vypíše, ale výsledok z toho vnoreného cyklu neviem začleniť do "behu udalostí", tak aby sa to aj zapísalo do DB na správne miesto, tvoj script mi dáva jedno Notice: Array to string conversion in E:\server\... (samozrejme zopakuje si to počtom cyklov) ale to mi až tak nevadí, takto som to skúšal: Kód: $url = "zdrojový link xml"; $xml = simplexml_load_file($url); $con = dbconnect($db_host, $db_user, $db_pass, $db_name); foreach($xml->item as $row) { $idserver = $row->idserver; $dir = $row->dir; $pics = $row->pics; foreach($row->image as $img){ $img = (string) $img; $image[] = $img; } //$image = $row->image; $safety = $row->safety; $result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','$image','$safety')" ); } print_r($image); to moje predchádzajúce experimenty s vnoreným cyklom boli neúspešné a nemá zmysel písať o ich výsledku, jednoducho som mal špatne napísaný script
|
|
Registrovaný: 08.08.09 Príspevky: 12449 Témy: 39 | 39 |
Konečne sa niekam dostávame. Stále si nám ale neprezradil, akým spôsobom budeš ukladať obrázky, pretože ako si už včera sám zistil, tie musíš ukladať inak ako ostatné riadky. Nemôžeš vložiť premennú $image, ktorá je pole do SQL databázy cez obyčajný INSERT. Ak budeš obrázky ukladať v samostatnej tabuľke (teda jedna tabuľka na item-y, druhá k nej pripojená na obrázky), jedným INSERTom vložíš všetko čo teraz, okrem obrázkov a potom vo vnorenom cykle vložíš ešte ďalším INSERTom (ten sa spustí pre každý obrázok) obrázky do tabuľky v ktorej jeden stĺpec bude nejaký identifikátor ktorým budeš vedieť jednoznačne priradiť obrázky k itemom.
_________________ always is always wrong |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | 3 |
Dalšia možnosť, ak niagraz nevieš, ako to narvať do databáze, môžeš si automaticky vytvoriť priečinok (funkcia mkdir), tam všetky obrázky uložiť (file_get_contents, file_put_contents) a do databáze si uložiť len názov priečinka s obrázkami. Tie potom vieš všetky prečítať funkciou readdir. Ale všeobecne je oveľa lepší spôsob narvať to do databáze. Myslím, že nie je ťažké toto $image[] = $img; prepísať na insert do tabulky "obrazky"
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 22.11.05 Prihlásený: 29.01.23 Príspevky: 712 Témy: 25 | 25 Bydlisko: SK-Martin |
čo sa týka obrázkov, chcem uložiť ich adresu, to čo je v <image> do jedného stlpca, oddelené by mohli byť napr. čiarkou, to už dokážem spracovať toto idem vyskúšať, len ma teraz napadla myšlienka, či by som mohol použiť pri vnorenom cykle INSERT do DB, (lebo toto sa podľa mňa vykoná skôr, než INSERT po hlavnom cykle) a po hlavnom cykle by som použil UPDATE DB, pričom určovacím kľúčom by bola položka $idserver, a nemusel by som vytvárať samostatnú tabuľku pre obrázky, ale môžem sa aj mýliť
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 | 66 Bydlisko: Žilina |
Samostatnú tabuľku pre obrázky potrebuješ.
_________________ C#, PHP, ... |
|
Registrovaný: 01.05.05 Príspevky: 13415 Témy: 1494 | 1494 Bydlisko: Bratislava |
Mozno ti pomoze ine vysvetlenie tvojho problemu. Mas skatulku v ktorej je napriklad 50 dalsich skatuliek (to su tie tvoje vsetky inzeraty), kazda z tych 50 skatuliek obsahuje jeden papier a 30 guliciek (papier su tie tvoje data co chces do insertu dat, gulicky su fotky), mas sanon kam mas kazdy tento papier z tych 50 skatuliek zalozit, no do sanonu ale gulicky asi nenarves, cize to spravis inac a to tak, ze zoberies skatulku, napises na nu cislo a toto cislo napises na dany papier a zalozis do sanonu, ci uz spracujes gulicky skor ako sanon alebo naopak je jedno, ide to aj tak aj tak, no ale budes vediet ze sanon s cislom 12 patri ku skatulke s cislom 12, to jest tie dve rozne tabulky, cize jedna tabulka je ten sanon, kde mas tieto papiere a druha tabulka je urcena na tie skatulky kde ale kazda gulicka bude mat cislo zo sanonu, takto vies ze je tam priradena. Killer ta naviedol dobre, mas jeden cyklus, v ktorom ked sa dostanes k obrazkom (gulickam) bud ulozis do pola a spracujes az po spracovani toho tvojho insertu, alebo to spravis tak ako spomenul bx a nahras do adresara s id tvojho insertu ktory dostanes po vlozeni. Ty chces v tom svojom poslednom zdrojaku narvat gulicky do sasnonu co proste nejde, bud ich tam cez implode() sprav ako si chcel ze ich oddelis ciarkou cize takto Kód: $result = dbquery("INSERT INTO xml_item (idserver,dir,pics,image,safety) VALUES ('$idserver','$dir','$pics','implode(",", $image)','$safety')" co je ale samozrejme blbe riesenie, cize to sprav tak ze stlpce image odtial jednoducho vyhod, spracujes tento svoj insert, zistis si hned za tym posledne id insertu cez last insert a nasledne toto id pouzijes pri dalsom foreachu kde naplnis tabulku uz priamo s odkazmi na obrazky Kód: foreach ($image as $i) { dbquery("INSERT INTO xml_item_fotky (id,image) VALUES ('ID_posledneho_insertu','$i')" } id posledneho insertu lastInsertId() http://php.net/manual/en/pdo.lastinsertid.php ak pouzivas PDO mysqli_insert_id http://php.net/manual/en/mysqli.insert-id.php ak pouzivas mysqli
_________________ Streacom DA2 | SilverStone Titanium SX800-LTI 800W | ASRock X299E-ITX/ac | Intel Core i9-9980XE & be quiet! Dark Rock TF | Kingston HyperX Impact 64 GB DDR4 2666 MHz | NVIDIA Titan RTX 24 GB | Intel SSD Optane 905P 480 GB NVMe U.2 & Intel SSD 750 1,2 TB NVMe U.2 & Intel SSD 660p 2 TB NVMe M.2 & Seagate BackUp Plus Portable 56 TB USB | 55" 4K OLED Dell Alienware AW5520QF | Ergotron LX Wall Mount Keyboard Arm | Logitech Craft | Logitech G603 | Logitech F710 | Harman Kardon Sabre SB 35 & Sennheiser RS 175 | Microsoft Windows 11 Enterprise | APC Back-UPS BE-850 VA | Lenovo ThinkPad X250 & Microsoft Windows 11 Professional | iPhone 15 Pro 256 GB & Pitaka Aramid | SilverStone ML05B Milo | Corsair SF600 SFX 600W | ASRock X99E-ITX/ac | Intel Xeon E5-2683 v4 & NOCTUA NH-L12S | Kingston HyperX Savage 32 GB DDR4 2400 MHz | NVIDIA GeForce GT 710 1 GB | Intel SSD Optane Memory 32 GB NVMe M.2 & Intel SSD 730 240 GB SATA | Ubuntu 24.04.1 LTS |
|
Stránka: 2 z 3
| [ Príspevkov: 71 ] | 1, 2, 3 |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 3 | 412 | 09.04.2013 21:22 Ďuri | | v PHP, ASP | 4 | 606 | 16.11.2007 15:41 chrono | | v Ponuka práce | 0 | 1362 | 02.05.2011 12:08 magicmedia | | v HTML, XHTML, XML, CSS | 12 | 1190 | 21.02.2008 20:20 jablko05 | | v HTML, XHTML, XML, CSS | 16 | 905 | 07.01.2011 10:21 Ando | | v HTML, XHTML, XML, CSS | 3 | 713 | 15.09.2009 21:08 1daemon1 | | v JavaScript, VBScript, Ajax | 25 | 1024 | 23.03.2009 21:33 7diwad7 | | v PHP, ASP | 12 | 893 | 22.10.2009 15:19 BYNGY | | v PHP, ASP | 2 | 481 | 12.07.2010 12:04 vama | | v PHP, ASP | 3 | 438 | 07.08.2016 12:09 chrono | | v Dopyt práce | 0 | 527 | 02.06.2024 15:03 spd | | v Vzdelanie, štúdium, škola | 9 | 714 | 18.12.2013 11:28 walther | | v Ponuka práce | 1 | 1360 | 10.11.2007 22:19 Ivuso | | v PHP, ASP | 4 | 1344 | 28.01.2009 22:18 mybirthday1403 | | v HTML, XHTML, XML, CSS | 5 | 855 | 14.04.2015 17:47 void | | v Ponuka práce | 0 | 1294 | 31.07.2007 17:01 Blue Media |
|