Autor Zpráva
Jitřenka
Profil *
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
Jitřenka:
Nejjednodušší bude pravděpodobně funkce file_get_contents .
Kajman
Profil
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 *
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
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č?

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: