Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Creare pagina xml con php in modo semplice

    alla pressione di un bottone si avvia questa pagina :
    esame3prova_query.php
    Codice PHP:
    <?php header("Content-type: application/xml"); 
    header("Cache-control: no-cache, must-revalidate"); 
    echo 
    "<?xml version=\"1.0\"?>\n";  
    $connessione mysql_connect("localhost","nick","passw");                      
    $DB mysql_select_db("my_ispanico5");         
    if(
    $DB)         
    //SELECT categoria.tipo FROM marca,categoria WHERE marca.id=categoria.id AND marca.nome='PHILIPS'             
    $query = ("Select categoria.tipo FROM marca,categoria WHERE marca.id=categoria.id AND marca.nome='$marca'");             
    //echo "stampo marca : $marca \n";                          
    if($result mysql_query($query))             
    {                 
    //echo "ho dei risultati\n";                 
    //echo "
    HO APPENA FATTO LA QUERY!";                 
    echo "
    <root>";                 
    while(
    $riga = mysql_fetch_array($result))                 {                     
    //echo "
    sono nel while";                     
    //echo "
    <option value=\"".$riga["nome"]."\" />".$riga["nome"]."</option>";                     
    //echo $riga["nome"];                     
    echo '\n<prodotto>\n'.$riga["tipo"].'\n</prodotto>
    '
    ;                 }                 
    //echo "</select>";                                  
    echo "</root>";             
    }         

    ?>

    Perchè il risultato è questo misero xml ??!? ho controllato tutto, la connessione, il risultato della query etc... tutto ..
    E' l'xml che non và.. Dove sbaglio ?

  2. #2
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non si vede l'immagine cmq non so se è questo ma prova così

    Select categoria.tipo t FROM marca,categoria WHERE marca.id=categoria.id AND marca.nome='$marca'

    e po richiami con $riga['t']

  3. #3
    probabilmente l'xml che produce non è ben formato (forse ci sono dei caratteri che vanno escapizzati).
    Prova a far stampare in un file di testo l'output e non a video e sopratutto per generare correttamente una stringa XML è obbligatorio utilizzare i metodi dell'oggeto XML e non concatenare stringhe (avrai sempre problemi di escape dei caratteri).
    Ecco un esempio di utilizzo del DOM XML di PHP:
    codice:
    $domain = "http://www.miodominio.com/";
    	$doc = new DOMDocument('1.0', 'UTF-8');
    	$doc->formatOutput = true;
    
    	$urlset = $doc->createElement("urlset");
    
    	$urlset->setAttribute("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
    	$urlset->setAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
    	$urlset->setAttribute("xsi:schemaLocation", "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd");
    
    		
    		$url = $doc->createElement("url");
    		$loc = $doc->createElement("loc");
    		$lastmod = $doc->createElement("lastmod");
    		$changefreq = $doc->createElement("changefreq");
    		$priority = $doc->createElement("priority");
    
    .... ecc

  4. #4
    Forse in qualche record la colonna tipo ha caratteri speciali o particolari, prova a stamparti a video $riga["tipo"]
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Ciao,
    <root/>
    indica che quell'elemento è vuoto, non contiene alcun elemento al suo interno.
    Probabilmente la query non produce risultati. Un motivo potrebbe essere che la variabile $marca non è valorizzata in alcun punto.
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  6. #6
    grazie a tutti per le risposte...
    Mi piacerebbe darvi ragione così avrei trovato il problema ma invece non è così....

    Vi posto una pagina dove provo la query :

    Codice PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   <title>query</title> 
    </head>  
    <body> 

    <?php 

    echo "
    ciao utente, ora avvio la query con "
    .$_POST["marca"]."..

    "
    ;  

    function 
    prova_query($marca
    {
    $connessione=sql_connect("localhost","nick","passw");                      
    $DB mysql_select_db("my_ispanico5");         
    if(
    $DB)         

    //SELECT categoria.tipo FROM marca,categoria WHERE marca.id=categoria.id AND marca.nome='PHILIPS'             
    $query = ("Select categoria.tipo FROM marca,categoria WHERE marca.id=categoria.id AND marca.nome='$marca'");                                       
    if(
    $result mysql_query($query))             
    {                 
    echo 
    "
    HO APPENA FATTO LA QUERY!
    "
    ;                 
    while(
    $riga mysql_fetch_array($result)) 
    {                     
    echo 
    '<item>
    '
    ;                     
    echo 
    $riga["tipo"];                     
    echo 
    "</item>
    "
    ;                     
    //echo "<option value=\"".$riga["nome"]."\" />".$riga["nome"]."</option>";
                        //echo $riga["nome"];
                        //echo '<prodotto>
     
    '.$riga["tipo"].'
    </prodotto>
    ';
    }
                    //echo "</select>";
    }
    }
    }



    prova_query($_POST['
    marca']);

    Il risultato appunto testimonia che la query funziona .. .

    Ma anche in questo campo non stampa cose come

    codice:
    <item> .... </item>
    perchè ??

    Cmq la pagina con il risultato della query :


    codice:
    console e televisore sono risultati della query... ma dovrebbero stare almeno come dice il while .. tra <item> e </item> perchè non và ?

  7. #7
    Perchè stai visualizzando una pagina html, ed il browser non ti mostra i tag ma solo il contenuto. Puoi vederli visualizzando, attraverso il browser, il codice sorgente della pagina.
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  8. #8
    VERO!

    Nel codice sorgente ci sono i tag <item>..</item>...

    Non riesco proprio allora perchè non funziona e perchè se visualizzo il sorgente (la query è la stessa, le variabili anche, tutto !) mi esce solo :
    <root></root>

    assurdo!

    perchè se provo a fare una pagina xml non funziona ?!?

    Sarà perchè l'output che creo viene generata da una pagina cmq php ?!?

    Quindi non ha estensione xml ?!?

    tipo

    prova.php
    <?php
    header("Content-type: application/xml");
    header("Cache-control: no-cache, must-revalidate");

    echo "<?xml version=\"1.0\"?>\n";

    echo "<root>";
    echo "<item">;
    echo "prodotto A";
    echo "</item">;
    echo "<item">;
    echo "prodotto B";
    echo "</item">;
    echo"</root>";
    ?>

    o dico una cosa completamente sbagliata??
    Mi è sorto il dubbio per questo lo chiedo

    In più chiedo ... in una pagina come questa postata sopra... devo cmq mettere i tag <head><body></html> etc ??!?

    <html>
    <head>
    <?php
    header("Content-type: application/xml");
    header("Cache-control: no-cache, must-revalidate");
    ?>
    </head>
    <body>
    <?php
    echo "<?xml version=\"1.0\"?>\n";

    echo "<root>";
    echo "<item">;
    echo "prodotto A";
    echo "</item">;
    echo "<item">;
    echo "prodotto B";
    echo "</item">;
    echo"</root>";
    ?>
    </body>
    </html>

    ?? No, vero ?!?

  9. #9
    Sarà perchè l'output che creo viene generata da una pagina cmq php ?!?
    Quindi non ha estensione xml ?!?
    L'estensione non c'entra nulla.
    L'header corretto per l'xml è:

    header("Content-Type: text/xml");

    In più chiedo ... in una pagina come questa postata sopra... devo cmq mettere i tag <head><body></html> etc ??!?
    No
    Full Stack Developer presso Advice Lab
    Bonus Bitcoin
    Moon Bitcoin

  10. #10
    Sono sfiduciato ..

    Sono 3 gg che ci provo

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.