Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463

    php creare un file xml da db

    ciao ragazzi help gigante . . .

    devo creare un file xml usando php prendendo dei dei dati dal db

    es tabella PRODOTTO

    id nome colore prezzo

    1 maglia rosso 5,00


    quindi il mio file xml creato drovra essere

    <root>
    <PRODOTTO>
    <nome>maglia</nome>
    <colore>rosso</colore>
    <prezzo>5,00</prezzo>
    </PRODOTTO>
    <root>


    non ho la piu' pallida idea help help è 2 gg che ci sclero sopra!


  2. #2

  3. #3
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    ora sono riuscito a fare qualcosa metto il codice cosi se serve a qualcune c'e'
    pero' mi chiedo come si faccia la stessa cosa usando SimpleXML functions si puo' fare??

    e + dinamico usando simplexml ma come si usano ?? nella guida nn si capisce una cippa!

    questo e quello che ho fatto io:



    <?php

    $db_name = "prova";
    $table_name = 'prodotto';
    mysql_connect("localhost","root","");
    mysql_select_db($db_name);
    $query = mysql_list_tables ("$db_name");

    $i = 0;
    echo "Elenco tabelle<hr>";
    while ($i < mysql_num_rows ($query)){
    $tabella[$i] = mysql_tablename ($query, $i);
    echo "Nome Tabella: ". $tabella[$i] ."
    ";
    $i++;
    }

    $campi = mysql_list_fields("prova", "prodotto");
    $colonna = mysql_num_fields($campi);

    for ($i = 0; $i < $colonna; $i++) {
    echo $colonne[$i] = mysql_field_name($campi, $i);
    }



    $query = "select * from " . $table_name;

    $result = mysql_query($query) or die("Could not complete database query");
    $num = mysql_num_rows($result);
    if ($num != 0) {

    $file= fopen("test.xml", "w");

    $_xml ="<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\r\n";

    $_xml .="<root>\r\n";

    while ($row = mysql_fetch_array($result)) {

    if ($row["nome"]) {

    $_xml .="\t<".$tabella[0].">\r\n";

    $_xml .="\t\t<".$colonne[1] . ">" . $row["nome"] . "</".$colonne[1].">\r\n";
    $_xml .="\t\t<".$colonne[2] . ">" . $row["colore"] . "</".$colonne[2].">\r\n";
    $_xml .="\t\t<".$colonne[3] . ">" . $row["prezzo"] . "</".$colonne[3].">\r\n";
    $_xml .="\t</".$tabella[0].">\r\n";
    }
    }

    $_xml .="</root>";

    fwrite($file, $_xml);

    fclose($file);

    echo "XML has been written. <a href=\"test.xml\">View the XML.</a>";

    } else {

    echo "No Records found";

    } ?>

    e mi genera questi file xml

    <?xml version="1.0" encoding="UTF-8" ?>

    <root>
    <prodotto>
    <nome>maglia</nome>
    <colore>rossa</colore>
    <prezzo>5</prezzo>
    </prodotto>
    </root>

    pero' è limitato xke se io ho xke devo crearmi io la struttura

  4. #4
    Anche utilizzando SimpleXML o DOM sei comunque tu a dover creare la struttura.

    Comunque, ecco un estratto del tuo codice ripulito e riordinato:

    Codice PHP:
    <?php
    $_xml 
    =  "<"."?xml version='1.0' encoding='UTF-8' ?".">\r\n";
    $_xml .= "<root>\r\n";
    while (
    $row mysql_fetch_array($result)) {
        if (
    $row["nome"]) {
            
    $_xml .= "\t<{$tabella[0]}>\r\n";
            
    $_xml .= "\t\t<{$colonne[1]}>{$row['nome']}</{$colonne[1]}>\r\n";
            
    $_xml .= "\t\t<{$colonne[2]}>{$row['colore']}</{$colonne[2]}>\r\n";
            
    $_xml .= "\t\t<{$colonne[3]}>{$row['prezzo']}</{$colonne[3]}>\r\n";
            
    $_xml .= "\t</{$tabella[0]}>\r\n";
        }
    }
    $_xml .= "</root>";
    ?>

  5. #5
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    quindi dici che questa è la soluzione migliore?? :master:

  6. #6
    "Migliore" è un concetto relativo alle tue necessità. Personalmente utilizzo un sistema del genere se devo creare dei file XML.

  7. #7
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    come verrebbe questo codice usando il dom?

  8. #8
    Utente di HTML.it L'avatar di izzusan
    Registrato dal
    Apr 2003
    Messaggi
    463
    ho scritto queste righe ma mi da errore subito nella prima riga come mai??

    <?php

    $doc = new DOMDocument();
    $doc->preserveWhiteSpace = false;
    $doc->load("test.xml");
    $root = $doc->documentElement;


    $newKW = $doc->createElement("keyword", "XSLT");

    $root->appendChild($newKW);

    $doc->formatOutput = true;
    echo '

    Updated XML source code:</p>';
    echo '<pre>' . htmlentities($doc->saveXML()) . '</pre>';


    ?>

    errore: Fatal error: Call to a member function on a non-object in c:\programmi\easyphp1-8\www\xml\prova2\creaxml.php on line 3

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.