Autor Zpráva
BMN
Profil
Zdravím, mám problém se spuštěním skriptu pro import XML do MySQL, nezobrazí se nic. Můžete mi prosím poradit kde je problém?

Struktura XML:
<item>
<title></title>
<description></description>
</item>

<?php
$feeds = array('android.xml');
foreach( $feeds as $feed ) {
    $xml = simplexml_load_file($feed);
    foreach($xml->item as $item)
    { 
             echo $item->title;
             echo $item->description;
    $title = stripslashes($item->title);
    $description = stripslashes($item->description);    
    $sql = "INSERT INTO rssingest (title, description) VALUES('$title', '$description');";
    mysql_query($sql) or die("Error ".mysql_error());
        
    }
}
?>
Rfilip
Profil
Nemůže to najít soubor "android.xml", takže ten bud neexistuje nebo máš špatně cestu k němu.
BMN
Profil
Soubor jsem tam dal, ale nevypíše to nic.
Kajman
Profil
BMN

Struktura by měl být spíše
<items>
<item>
<title></title>
<description></description>
</item>
</items>

A když jsou elementry prázdné, není divné, že je to nic nevypíše.
BMN
Profil
Elementy nejsou prázdné, napsal jsem jen strukturu toho XML souboru. Ale ne úplně přesně, za to se omlouvám. Ten element <item> se stále opakuje a v něm jsou i jiné elementy než title a descriptions, ale to snad ničemu nevadí, když chci vypsat jen tyhle 2.

<channel>
<item>
<title>Lorem ipsum</title>
<description>Lorem ipsum</description>
</item>
<item>
<title>Lorem ipsum</title>
<description>Lorem ipsum</description>
</item>
<channel>
Tori
Profil
BMN:

$title = stripslashes((string) $item->title);
$description = stripslashes((string) $item->description);
A chybí escapování pro databázi.
BMN
Profil
Přidal jsem a stále se nic nevypisuje.

<?php
$feeds = array('android.xml');
foreach( $feeds as $feed ) {
    $xml = simplexml_load_file($feed);

    foreach($xml->item as $item)
    { 
       echo $item->title;
       echo $item->description; 
                                                            
    $title = stripslashes((string) $item->title);
    $description = stripslashes((string) $item->description);    
   
    $sql = "INSERT INTO rssingest (title, description) VALUES('$title', '$description');";
    mysql_query($sql) or die("Error ".mysql_error());         
    }
}
?>
Tori
Profil
BMN:
Tak to přetypujte na řetězec i na ř.8+9, nevšimla jsem si toho echa. Do databáze se data ukládají?
BMN
Profil
Neukládají se data do databáze. Konkrétně se jedná o tento XML soubor http://feeds.feedburner.com/AndroidNewsGoogleAndroidForums?format=xml.
Kajman
Profil
Struktura toho xml je

<rss>
  <channel>
    <item>
      <title>Lorem ipsum</title>
      <description>Lorem ipsum</description>
    </item>
    <item>
      <title>Lorem ipsum</title>
      <description>Lorem ipsum</description>
    </item>
  </channel>
</rss>

Zkuste tedy na řádku 6
foreach($xml->channel->item as $item)

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: