Visualizzazione dei risultati da 1 a 2 su 2

Discussione: php e xml

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    15

    php e xml

    buonpomeriggio a tutti volevo sapere se qualcuno è così gentile da spiegarmi dove sbaglio.
    ho creato questo piccolo scriptino per fare l'output dei dati da un db mysql in un file xml.
    Codice PHP:
    <?php
    header
    ("Content-type: application/xml");
    header("Cache-control: no-cache, must-revalidate");
    echo 
    "<?xml version=\"1.0\"?>\n";
    echo
    "<images>";
    echo
    "<thumb displayNum=\"6\" separation=\"5\">";
    include 
    "../datidb.inc";
    $path ="/gallery_c/images/"
    $conn="";
    $select="";
    $conn=mysql_connect($dbhost,$dblogin,$dbpasswd);
    $select=mysql_select_db($dbname);
    $query="SELECT * FROM foto ORDER BY id DESC";
           
    $select=mysql_query($query,$conn) or die($query);
           while(
    $records=mysql_fetch_array($select)){
           
    $foto=$records['foto'];
           
    $desc=$records['desc'];
           
           echo
    "
                    <image>
    $path$foto</image>
                    <description>
    $desc</description>
                </thumb>
          </images>"
    ;
              
    }
                
    mysql_free_result($select); 
    ?>
    l'errore che mi viene continuamente restiuito è

    The XML page cannot be displayed
    Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


    --------------------------------------------------------------------------------

    Nei documenti XML è consentito un solo elemento di primo livello. Errore durante l'elaborazione della risorsa "http://www.a...

    <image>/gallery_c/images/foto2.jpg</image>
    -----------------^

    grazie a tutti anticipatamente

  2. #2
    Il tuo file XML non è bilanciato: ogni elemento deve essere aperto e chiuso mentre tu chiudi thumb e images all'interno del ciclo while. Quando il while esegue più di una iterazione, i sopraccitati items verranno chiusi più di una volta.

    Tirando ad indovinare, ti riporto un fragmento di codice corretto:

    Codice PHP:
    ...
    echo 
    "<images>";

    while (
    $records=mysql_fetch_array($select)){
        
    $foto=$records['foto'];
        
    $desc=$records['desc'];
        echo 
    "<thumb>
                <image>
    $path$foto</image>
                <description>
    $desc</description>
              </thumb>"
    ;
              }

    echo 
    "</images>\n";
    ... 

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.