Autor Zpráva
vecerapl
Profil
Ahoj,

dělám si agregátor slev a načítám XML feed http://www.slevopolis.cz/feeds/vykupme_cz.xml

Každou položku ukládám, avšak stojím nyní před problémem, kdy sleva na Ubytování pro dva na dvě noci s večeří v hotelu VILLA, místě známém ze seriálu „Ordinace v růžové zahradě“. jev XML feedu hned několikrát z důvodu toho, že sleva je pro vícero měst a tak můj script tuto slevu uloží hned několikrát pro každé město. To je v pořádku, jenže rád bych tuto slevu se stejným popisem, ale jinou URL chtěl uložit jen 1x a to tak, že pokud ta sleva tam bude stejná 2x a více, uloží se pouze jednou a jako město se použije Česká republika

Můj script:

  $xml = simplexml_load_file("http://www.slevopolis.cz/feeds/vykupme_cz.xml");

  // zkontrolujeme, zda-li URL adresa na XML existuje
  if ($xml != "")
 {
 // provedeme vypis XML
  foreach($xml as $data)
  {
  $mesto    = $data->CITY;
  $popis    = $data->TITLE;
  $url      = $data->URL;
  $image    = $data->IMAGE;
  $cena     = $data->FINAL_PRICE;
  $sleva    = $data->DISCOUNT;
  $zakaznik = $data->CUSTOMERS;
  $cas_od   = $data->DEAL_START;
  $cas_do   = $data->DEAL_END;
  
  // zjistime, zda-li URL je jiz v mySQL
  $search = sql("SELECT id FROM sleva WHERE url='$url' OR popis='$popis'");

  // sleva - jeji URL jeste neni v mySQL, tak slevu zapiseme
  if ($search[0] == "") {
  sql("insert into sleva values ('', '$id_mesto[0]', '$nazev', '$popis', '$url', '$firma[0]', '$obrazek', '$cena', '$sleva', '$zakaznik', '$otevreno', '$zavreno', '$poradi', '$povoleno', '$time')");
  } else {
  // sleva jiz v mySQL je, tak provedeme jen jeji update
  sql("UPDATE sleva SET popis = '$popis', url = '$url', zakaznik = '$zakaznik', otevreno = '$otevreno', zavreno = '$zavreno', time = '$time' WHERE id='$search[0]'");
  }


Není to přímo 100% script co Vám zde ukazuji. Jen chci, aby jste byli v obraze jak to asi mám teď.
Kajman_
Profil *
Tenhle skript ale přeci nevytvoří více řádků se stejným popisem. Vždyť hledáte nejen url ale i popis='$popis'.

Asi bych si v tom první dotaze nevyhledával jen id, ale i mesto. A v update dal republiku, pokud tam bylo jiné mesto než aktuálně načtené z xml.
Anonym
Profil *
Toto funguje?
$search = sql("SELECT id FROM sleva WHERE url='$url' OR popis='$popis'");
if ($search[0] == "") {


já bych čekal spíš:
if ($row = mysql_fetch_array($search)) if ($row[0] == "") {...

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:

0