Autor | Zpráva | ||
---|---|---|---|
Jitřenka Profil * |
#1 · Zasláno: 30. 1. 2018, 13:23:57
Ahoj, pokoušíme se zpracovávat vstup hodnot a následně je ukládat do DB. Textové a číselné hodnoty jsou OK. A teď jsem narazila na problém v jednom vstupu mám adresu url s obrázkem. Jak udělat uložení do DB a zároveň uložení souboru do adresáře. Respektive do DB to nějak dostanu, ale jakou funkci použít aby se mi to zároveň nahrálo ke mě na ftp do daného adresáře?
Děkuji za pomoc. |
||
Keeehi Profil |
#2 · Zasláno: 30. 1. 2018, 13:46:21
Jitřenka:
Nejjednodušší bude pravděpodobně funkce file_get_contents . |
||
Kajman Profil |
#3 · Zasláno: 30. 1. 2018, 15:17:13
Pokud to konfigurace dovolí, tak jde i copy
Hlavně si hlídejte přepis stejně nasvazných souborů a neukládejte soubory nazvané .php atp. pokud by se daly spustit. |
||
Jitřenka Profil * |
#4 · Zasláno: 31. 1. 2018, 09:56:08
Děkuji vyzkoušela jsem copy a funguje.
Ještě prosím jedna prosba vstup mých hodnot je xml. Načítám pomocí simplexml. Jedná se o xml s několika vnořenými elementy a nevím zda je čtu správně, ale zatím to funguje. Př.: <SHOP> <SHOPITEM> ... <VARIANTS> <VARIANT> ... <IMAGES> <IMAGE> <IMG_URL> </IMG_URL> </IMAGE> </IMAGES> <VARIANTS> </VARIANTS> ... </SHOPITEM> </SHOP> jak čtu: $xml=simplexml_load_file("ms.xml"); $keys = $xml->xpath("SHOPITEM"); foreach ($keys as $shop) // hlavni cyklus { $code_master = $shop->CODE; ..... foreach ($shop->VARIANTS->VARIANT as $varianty) //Vnoreny elementy pouzijeme druhy foreach { echo $varianty->CODE,"<br>"; foreach ($varianty->IMAGES->IMAGE as $images) //Vnoreny elementy pouzijeme treti foreach { echo $images->IMG_URL,"<br>"; } } } Zkrátka nevím zda je potřeba pro ty vnořené elementy pokaždé udělat nový cyklus, ale bez něj mi to nefungovalo. Děkuji |
||
Keeehi Profil |
#5 · Zasláno: 31. 1. 2018, 11:59:34
Jitřenka:
„Zkrátka nevím zda je potřeba pro ty vnořené elementy pokaždé udělat nový cyklus, ale bez něj mi to nefungovalo.“ Ano je, děláš to správně. |
||
Jitřenka Profil * |
Ještě asi bude chyba při ukládání do DB:
$xml=simplexml_load_file("ms.xml"); $keys = $xml->xpath("SHOPITEM"); foreach ($keys as $shop) // hlavni cyklus { $podminka = similar_text($code_master, "MP"); // zjisteni zda hlavni kod obsahuje MP if ($podminka != 2) { $sqlIns = $spojeni_db->atd.. // vloženi do tabulky good $good_id=$sqlIns->insert_id; $sqlIns = $spojeni_db->atd.. // vloženi do tabulky good_text kde jako druhé id je použito $good_id $sqlIns = $spojeni_db->atd.. // vloženi do tabulky good_image kde jako druhé id je použito $good_id foreach ($varianty->IMAGES->IMAGE as $images) //Vnoreny elementy na další obrázky pouzijeme treti foreach { $sqlIns = $spojeni_db->atd.. // vloženi do tabulky good_image kde jako druhé id je použito $good_id } } } A teď co se děje: Do tabulky ggod a good_text se vše uloží ale do tabulky good_image se náhodně něco neuloží (vždy něco jiného po refresh) a vypisuje mi to tuto chybu: Error: Cannot add or update a child row: a foreign key constraint fails (`d11671_kk`.`shop_good_image`, CONSTRAINT `shop_good_image_ibfk_1` FOREIGN KEY (`good_id`) REFERENCES `shop_good` (`id`) ON DELETE CASCADE ON UPDATE CASCADE). 70 Je možné že v tom posledním dotazu na DB nezná to moje $good_id , které vzniká při prvním dotazu na DB $good_id=$sqlIns->insert_id; a nebo je chyba v dotazu?
Struktura tabulky image je takováto: CREATE TABLE `shop_good_image` ( `id` int(11) NOT NULL AUTO_INCREMENT, `good_id` int(11) NOT NULL DEFAULT 0, `src` varchar(100) COLLATE utf8_czech_ci NOT NULL DEFAULT '', `alt` varchar(100) COLLATE utf8_czech_ci DEFAULT NULL, `modified` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`), KEY `good_id` (`good_id`), CONSTRAINT `shop_good_image_ibfk_1` FOREIGN KEY (`good_id`) REFERENCES `shop_good` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci Když si id , které je v proměnné $good_id vypíši tak ho v pohodě vidím, ale jakmile ho použiji to to posledního dotazu na DB tak mi to hlasí tu chybu. Proč? |
||
Časová prodleva: 6 let
|
0