Incontro dei problemi con la creazione di file XML, via PHP, recuperando i dati da db.
Questo è il codice che utilizzo:
Codice PHP:
$testob_old = "<"."?xml version=\"1.0\" encoding=\"UTF-8\" ?".">\r\n<mySlideShow>";
$result = mysql_query("SELECT * FROM `b_old` ORDER BY moto_id DESC");
while ($row = mysql_fetch_array($result)) {
$media = $row["media"];
$family = $row["family"];
$titolo = $row["titolo"];
$cilindrata = $row["cilindrata"];
$colore = $row["colore"];
$abs = $row["abs"];
$colore = htmlentities($colore);
$colore = str_replace("€","#","$colore");
$abs = str_replace("€","#","$abs");
$testob_old .= "<myImage media = \"" . $media . "\" family = \"" . $family . "\" titolo = \"" . $titolo . "\" cilindrata = \"" . $cilindrata . "\" colore = \"" . $colore . "\" abs = \"" . $abs . "\"></myImage>";
}
$testob_old .= "</mySlideShow>";
$newfile = fopen("myb_old.xml", "w");
fwrite($newfile, $testob_old);
fclose($newfile);
Con questo sistema, creo 9 diversi file XML.
Però mi ritrovo con due diversi ordini di problemi...
PRIMO
Se la tabella del db è vuota (cosa possibile, poichè possono non esserci prodotti, in quel momento), la creazione del file XML viene fuori monca, ovvero mi crea soltanto le prime due righe - quelle costruite prima della chiamata al db...
Ho provato anche a mettere le condizioni if...
Codice PHP:
if ($media == "") {
$media = "-";
}
per non lasciare il campo vuoto, perché sembrava dovuto a questo, ma continua a non creare le righe successive!
SECONDO
Dei 9 file XML creati, 3 danno questo problema perchè il db è vuoto, gli altri 6 presentano invece dati. Però, mentre 5 vengono elaborati correttamente, uno solo - quando lo richiamo direttamente nel browser - mi dà questo errore, anche se poi viene caricato correttamente da Flash, sua destinazione finale.
Dove la colonna 14 corrisponde al segno < di apertura del tag myImage.
Perchè mai?
Cmq, è soprattutto il primo problema, che devo assolutamente risolvere!!!
Please, help!