mysql abfrage in dynamische xml

Andre267

Erfahrenes Mitglied
Schönen guten Tag,

ich habe mal wieder ein Problem. :D
Ich versuche gerade eine mysql abfrage in eine dynamische xml ein zu binden doch irgendwie bekomme ich folgende Fehlermeldung:

This page contains the following errors:

error on line 1 at column 1: Document is empty
Below is a rendering of the page up to the first error.

Hier meine dynamische xml:
PHP:
<?php
header('Content-Type: text/xml'); 
 include("werte.php");
$meineXML = '<?xml version="1.0" encoding="ISO-8859-1" ?>'; 
$meineXML .= '<testabc>'; 

$meineXML .= '<abc>'; 
$meineXML .= $abc;
$meineXML .= '</abc>';

$meineXML .= '<abc_pic>'; 
$meineXML .= $abc_pic;
$meineXML .= '</abc_pic>';

$meineXML .= '<test>';  
$meineXML .= $test;
$meineXML .= '</test>'; 

$meineXML .= '<test_url>'; 
$meineXML .= $test_url;
$meineXML .= '</test_url>'; 

$meineXML .= '<test_titel>'; 
$meineXML .= $test_titel;
$meineXML .= '</test_titel>'; 

$meineXML .= '<test_genre>'; 
$meineXML .= $test_genre;
$meineXML .= '</test_genre>'; 

$meineXML .= '<test_start>'; 
$meineXML .= $test_start;
$meineXML .= '</test_start>'; 

$meineXML .= '<test_end>'; 
$meineXML .= $test_end;
$meineXML .= '</test_end>'; 

$meineXML .= '</testabc>'; 

echo utf8_encode($meineXML);


?>

Und hier meine werte.php:
PHP:
<?php

	include("mysql.class.php");
	$sql = new mysql("localhost","root","","testabc");
	$i = 0;
	$res = $sql->query("SELECT * FROM `gadget` ORDER BY `id` ASC;");
	while($row =  mysql_fetch_array($res))
	{
		$i++;
		$speicher[$i] = $row[1];
	}



	$abc = $speicher[1];
	$abc_pic = $speicher[2];
	$test = $speicher[3];
	$test_url = $speicher[4];
	$test_titel = $speicher[5];
	$test_genre = $speicher[6];
	$test_start = $speicher[7];
	$test_end = $speicher[8];
	
	$sql->free_result();

	$sql->close_connect();
	
?>

Und zum Schluss noch die mysql.class.php:
PHP:
<?
error_reporting(E_ALL);

/*
    @ PHP5 Mysql-klasse 
    @ Copyright by Web Communication World (www.wccw.in)
    @ Diese Klasse darf frei unter diesem Vermerk eingesetzt, verändert und weitergegeben werden
    @ Weitere Klassen, sind auf www.wccw.in Kostenlos erhältlich


    Verwendete Funktionen:
    @ mysql_connect
    @ mysql_select_db
    @ mysql_error
    @ mysql_query
    @ mysql_fetch_array
    @ mysql_fetch_assoc
    @ mysql_fetch_object
    @ mysql_fetch_row
    @ mysql_num_rows
    @ mysql_real_escape_string
    @ mysql_free_result
    @ mysql_insert_id
    @ mysql_close
    @ htmlspecialchars
    @ trigger_error
*/








class mysql
{
    private $host     = ''; 
    private $user     = '';
    private $passwort     = ''; 
    private $dbname     = '';
    private $last_injection = '';
    private $conn_id = null;
    
    
    
    
    public function __construct($host, $user, $passwort, $dbname)
    {
        $this->host     = $host;
        $this->user     = $user;
        $this->passwort = $passwort;
        $this->dbname     = $dbname;
        $this->connect_mysql();
        return($this->conn_id);
    }
    
    
    
    private function connect_mysql()
    {
        $this->conn_id = mysql_connect($this->host,$this->user,$this->passwort);
        
        if($this->conn_id === false)
        {
            $message  = "Verbindung zur Datenbank nicht m&ouml;glich.<br />\n";
            $message .= "Mysql-fehlermeldung: <br />\n";
            $message .= mysql_error();
            
            trigger_error($message);
            } 
            else 
            {
            $this->select_db();
        }
    }
    
    
    
    private function select_db()
    {
        $select = mysql_select_db($this->dbname,$this->conn_id);
        
        if($select === false)
        {
            $message  = "Die angegebene Datenbank \"".$this->dbname."\" existiert nicht.<br />\n";
            $message .= "Mysql-fehlermeldung: <br />\n";
            $message .= mysql_error();
            
            trigger_error($message);
        }
    }
    
    
    
    public function query($sqlcode)
    {
        $this->last_injection = mysql_query($sqlcode);
        
            if($this->last_injection === false)
            {
                $message  = "Fehler bei dem Ausf&uuml;hren eines Mysql-codes!<br />\n";
                $message .= "Mysql-Code: " . htmlspecialchars($sqlcode, ENT_QUOTES) . "<br />\n";
                $message .= "Mysql-fehlermeldung:<br />\n";
                $message .= mysql_error();
                trigger_error($message);
            }
            
        return($this->last_injection);
    }
    
    
    
    public function array_result($sql = NULL, &$row = '')
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $row = mysql_fetch_array($inc);
        
        return($row);
    }
    
    
    
    public function row_result($sql = NULL, &$row = '')
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $row = mysql_fetch_row($inc);
        
        return($row);
    }
    
    
    
    public function object_result($sql = NULL, &$row = '')
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $row = mysql_fetch_object($inc);
        
        return($row);
    }
    
    
    
    public function assoc_result($sql = NULL, &$row = '')
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $row = mysql_fetch_assoc($inc);
        
        return($row);
    }
    
    
    
    public function num_result($sql = NULL)
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $num = mysql_num_rows($inc);
        
        return($num);
    }
    
    
    
    public function sql_string($string)
    {
        return(mysql_real_escape_string($string));
    }
    
    
    
    public function free_result($sql = NULL)
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        mysql_free_result($inc);
    }
    
    
    
    public function result($set = 0, $field = 0, $sql = NULL, &$row = '')
    {
        $inc = '';
        if($sql === NULL)
        {
            $inc = $this->last_injection;
            } else {
            $inc = $sql;
        }
        
        $row = mysql_result($result, $set, $field);
        
        return($row);
    }
    
    
    
    public function insert_id(&$row = '')
    {
    
        $row = mysql_insert_id();
        
        return($row);
    }
    
    
    
    public function close_connect()
    {
        mysql_close($this->conn_id);
    }
}
?>

Hat jemand eine Idee warum das es nicht funktioniert?
 
Zuletzt bearbeitet:
Hi,
PHP:
 $speicher[$i] = $row[1]."<br />\n";

ich glaube in XML sind solche HTML-Tags nicht erlaubt oder irre ich mich ?
 
werte.php
die Zeile:
PHP:
    echo $speicher[1];
mal raushauen , auskommentieren was auch immer. Vllt hilft das :D ich bin sonst ratlos^^
Übrigens gibst du im XML Header bei encoding "ISO-8859-1" an und encodierst am schluss den String in UTF-8.
kA ob das so gewollt ist ^^ sollte aber nichts mit deinem Fehler zutun haben.

edit:
Wenn das auch nicht Hilft lass mal die Zeile
PHP:
header('Content-Type: text/xml');
weg und schau dir das mal genau an was der Browser ausgibt , vllt sind da Fehlermeldungen von der MySQL Verbindung drin oder sowas.
 
Zuletzt bearbeitet:
Habe ich alles gemacht doch eine Fehlermeldung oder so gibt es irgendwie nicht...
Wenn ich es jetzt wieder rein mache als den header nach dem ich das echo entfernt habe bekomme ich diese Fehlermeldung.

This page contains the following errors:

error on line 1 at column 6: XML declaration allowed only at the start of the document
Below is a rendering of the page up to the first error.
 
Hat niemand eine Idee, wodran es liegen könnte?

Okay hat sich erledigt...

Ich habe das ganze einfach via fwrite in eine andere Datei geschrieben.
 
Zuletzt bearbeitet:
Zurück