Autor Zpráva
Cakewalk
Profil
Dobrý den,
snažím se vyexportovat obsah databáze do XML, ale stále naráží na problémy. Vygenerování jde bez problémů, ale uložení do souboru už ne.

Generuji:

echo "<PRODUCT><![CDATA[".$item_title."]]></PRODUCT>\n";
    echo "<DESCRIPTION><![CDATA[".$item_description."]]></DESCRIPTION>\n";
    echo "<URL>".$setts['site_path']."auction_details.php?auction_id=".$result['auction_id']."</URL>\n";
    echo "<IMGURL>".$item_image."</IMGURL>\n";
    echo "<PRICE_VAT>".$result['start_price']." Kč</PRICE_VAT>\n";
    echo "<CATEGORYTEXT>".$item_category."</CATEGORYTEXT>\n";
    }
    echo "</SHOPITEM>\n";
    echo "</SHOP>\n";

Ukládám:

$tables .= 
    '<?xml version=\"1.0\" encoding=\"windows-1250\" standalone=\"no\" ?>\n'.
    '<SHOP> \n\n'.
    '<SHOPITEM>\n'.
    '<PRODUCT><![CDATA['.$item_title.']]></PRODUCT>\n'.
    '<DESCRIPTION><![CDATA['.$item_description.']]></DESCRIPTION>\n'.
    '<URL>'.$setts['site_path'].'auction_details.php?auction_id='.$result['auction_id'].'</URL>\n'.
    '<IMGURL>'.$item_image.'</IMGURL>\n'.
    '<PRICE_VAT>'.$result['start_price'].' Kč</PRICE_VAT>\n'.
    '<AVAILABILITY>0</AVAILABILITY>\n'.
    '<CATEGORYTEXT>'.$item_category.'</CATEGORYTEXT>\n'.
    '</SHOPITEM>\n'.
    '</SHOP>\n'.
    

  $handle = fopen($nazev_souboru='xmlfeed-'.time().'-'.(md5(implode(',',$tables))).'.xml','w+');

  fwrite($handle,$return);
  fclose($handle);
  
  
$result = create_zip(array($nazev_souboru),'xmlfeed-'.time().'-'.(md5(implode(',',$tables))).'.zip');
unlink($nazev_souboru);

Jen mě nakopněte. Bude to nějaká přehlédnutá chybka. Díky
Alphard
Profil
$return neexistuje.
To $nazev_souboru=... bych dal samostatně na řádek, to vaše není špatně, ale je to nepřehledné. Pak si budete moc i jednoduše vypsat, jeslti je to správně.
$tables obsahuje řetězec, proč implode()?
Keeehi
Profil
$tables .= 
    '<?xml version=\"1.0\" encoding=\"windows-1250\" standalone=\"no\" ?>\n'.
    '<SHOP> \n\n'.
    '<SHOPITEM>\n'.
    '<PRODUCT><![CDATA['.$item_title.']]></PRODUCT>\n'.
    '<DESCRIPTION><![CDATA['.$item_description.']]></DESCRIPTION>\n'.
    '<URL>'.$setts['site_path'].'auction_details.php?auction_id='.$result['auction_id'].'</URL>\n'.
    '<IMGURL>'.$item_image.'</IMGURL>\n'.
    '<PRICE_VAT>'.$result['start_price'].' Kč</PRICE_VAT>\n'.
    '<AVAILABILITY>0</AVAILABILITY>\n'.
    '<CATEGORYTEXT>'.$item_category.'</CATEGORYTEXT>\n'.
    '</SHOPITEM>\n'.
    '</SHOP>\n';
    
$nazev_souboru='xmlfeed-'.time().'-'.(md5($tables));
file_put_contents($nazev_souboru.".xml", $tables);  
$result = create_zip(array($nazev_souboru.".xml"),$nazev_souboru.".zip");
unlink($nazev_souboru.".xml");
Cakewalk
Profil
Díky za reakci. Soubor se uloží, ale je prázdný bez obsahu. Nevíte, čím to je?


$query = $db->query("SELECT auction_id,name,description,category_id,start_price,owner_id FROM " . DB_PREFIX . "auctions WHERE active=1 and closed=0 AND deleted!=1 ORDER BY start_time DESC LIMIT 500");
    while ($result = mysql_fetch_assoc($query)) { 
    $item_title = trim(strip_tags($db->add_special_chars($result['name'])));
    $item_description = trim(strip_tags($db->add_special_chars($result['description'])));
    $item_category = trim($db->add_special_chars(category_navigator($result['category_id'], false, true, 'categories.php')));
    $item_image = trim(image_data($result['auction_id']));
    $user_data = $db->get_sql_row("SELECT city,zip_code FROM " . DB_PREFIX . "users WHERE user_id='".$result['owner_id']."'");

$feed .= 
    '<?xml version=\"1.0\" encoding=\"windows-1250\" standalone=\"no\" ?>\n'.
    '<SHOP> \n\n'.
    '<SHOPITEM>\n'.
    '<PRODUCT><![CDATA['.$item_title.']]></PRODUCT>\n'.
    '<DESCRIPTION><![CDATA['.$item_description.']]></DESCRIPTION>\n'.
    '<URL>'.$setts['site_path'].'auction_details.php?auction_id='.$result['auction_id'].'</URL>\n'.
    '<IMGURL>'.$item_image.'</IMGURL>\n'.
    '<PRICE_VAT>'.$result['start_price'].' Kč</PRICE_VAT>\n'.
    '<AVAILABILITY>0</AVAILABILITY>\n'.
    '<CATEGORYTEXT>'.$item_category.'</CATEGORYTEXT>\n'.
    '</SHOPITEM>\n'.
    '</SHOP>\n';
    

 //save file
 
 $nazev_souboru='xmlfeed-'.time().'-'.(md5($tables));
file_put_contents($nazev_souboru.".xml", $tables);  

$result = create_zip(array($nazev_souboru.".xml"),$nazev_souboru.".zip");
unlink($nazev_souboru.".xml");
}

Alphard: return je pozůstatek původního scriptu, přehlédl jsem ho, díky za reakci
Keeehi: file_put_contents jsem nějak vypustil, díky za postřeh
Kajman
Profil
Cakewalk:
ale je prázdný bez obsahu. Nevíte, čím to je?

Proměnnou $tables jste přejmenoval na $feed jen na jednom místě ze tří.
Cakewalk
Profil
Já jsem ale kus vola...pardon. Můj omyl. Díky
Cakewalk
Profil
Vše jeden bez chyby. Díky.

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: