PHP MYSQL data in XML speichern

njude

Grünschnabel
Hallo leuts,

ich habe schon in einem anderem forum zu der thematik gepostet..

Für alle zum nachlesen..

http://www.coding-board.de/board/showthread.php?p=138060#post138060

Nun mein problem ist nun dass ich den daten wurst den ich aus der db lade passend in die xml datei speichere..

dass klappt schon recht gut..

nun mein prob ist noch dass einige daten erst in einer relation zu anderen tabelle erscheinen.

nun jetzt brauche ich ein paar beispiel wie ich dies realisieren kann..
Derzeitige daten strucktur ist diese..

Nun möchte ich dass auch in mein derzeitiges script integrieren..

PHP:
$sql = sprintf("SELECT estate_id,
                               estate_cat_id,
                               estate_user_id,
                               estate_place_id,
                               CONCAT(place_zip,' ',place_name) AS estate_zip_place,
                               estate_title,
                               estate_ref_number,
                               estate_type,
                               estate_price,
                               estate_rent,
                               estate_objecttype_id,
                               objecttyp_name as estate_objecttype,
                               estate_objectart_id,
                               estate_location,
                               estate_description,
                               estate_fixtures,
                               estate_courtage,
                               estate_creator,
                               estate_created,
                               estate_changer,
                               estate_changed,
                               estate_status,
                               user_gender,
                               CONCAT(user_firstname,' ',user_lastname) AS user_name,
                               user_firma,
                               user_street,
                               CONCAT(user_zipcode,' ',user_place) AS user_zip_place,
                               user_phone,
                               user_fax,
                               user_web,
                               user_email
                        FROM ((".DBPREFIX.'estates
                        INNER JOIN '.DBPREFIX.'places
                           ON estate_place_id = place_id )
                        INNER JOIN '.DBPREFIX.'objecttyps
                           ON estate_objecttype_id = objecttyp_id )
                        INNER JOIN '.DBPREFIX.'users
                           ON estate_user_id = user_id
                        WHERE estate_id = %d',
                        (int) $this->estate_id);
 
Gerne,

also ich habe eine mehrere tabellen.

Einmal Objekte mit inhalt die relation zur objekte ist die objekte infos dann habe ich noch eine user tabelle.

So nun möchte ich mit folgendem code eine ausgabe mit den joins machen..

Daher die fehlenden verbindungen mit ausgeben in dieser schleife..
PHP:
<?php
// 1. Verbindung zur Datenbank aufbauen: -------------------------------------------------------------
$hostname = "";
$username = "";
$password = "";

if(!$conn = mysql_pconnect($hostname, $username, $password)) {
    die("Verbindung zur Datenbank konnte nicht hergestellt werden. Errorcode: ".mysql_error());
}
else {
    //echo("Die Verbindung zur Datenbank wurde erfolgreich hergestellt.<br/>");
}
// ----------------------------------------------------------------------------------------------------

// 2. Datenbank auswählen: ----------------------------------------------------------------------------
$db = "";
if(!mysql_select_db($db)) {
    die("Die Datenbank $db konnte nicht ausgewaehlt werden. Errorcode: ".mysql_error());
}
else {
    //echo("Die Datenbank $db wurde erfolgreich ausgewaehlt.<br/>");
}

// 3. SQL-Statement und Abfrage erzeugen: -------------------------------------------------------------
$sql = "SELECT * FROM immo_estates";
if(!$query = mysql_query($sql)) {
    die("Das SQL-Statement konnte nicht durchgefuehrt werden. Errorcode: ".mysql_error());
}
else {
    //echo("Das SQL-Statement:<br/>$sql<br/>wurde erfolgreich abgesetzt.");
}
// ----------------------------------------------------------------------------------------------------
/**
* Dateihandle auf deine XML Datei erzeugen mit Zugriffsmode 'w'.
* Was das bedeutet kannst du hier nachlesen:
* http://de.php.net/manual/de/function.fopen.php
*/
$fh = fopen("project.xml", "w");

/**
* Nun wird ein String erstellt, in dem die ersten Zeilen der Datei stehen,
* da diese ja immer gleich sind.
* Das Newlinezeichen '\n' solltest du an jedes Zeilenende setzen, damit
* das File nicht einzeilig und übersichtlich wird ;)
*/
$str = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
$str .= "<IS24ImmobilienTransfer xmlns=\"http://www.immobilienscout24.de/immobilientransfer\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.immobilienscout24.de/immobilientransfer is24immotransfer.xsd\" EmailBeiFehler=\"info@deine.de\" ErstellerSoftware=\"immoscout\" ErstellerSoftwareVersion=\"1.0\">\n";
$str .= "<Anbieter ScoutKundenID=\"011\">\n";

/**
* Nun mal die Daten aus der DB holen, ich nehme nun mal nur
* einen Datensatz. Das lässt sich aber beliebig ändern, du musst
* ja dann nur das ganze in eine while() Schleife setzen.
*/
//$row = mysql_fetch_array($query, MYSQL_ASSOC);
/**
* Nun hängen wir an den String einfach das ganze Zeugs ran.
*/
//$str .= "\t<KundeID>".$row['estate_id']."</KundeID>\n";
//$str .= "\t<Vorname>".$row['estate_title']."</Vorname>\n";

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

$str .="<HausMiete AnbieterObjektID=\"".$row['estate_id']."\" Adressdruck=\"False\" Ueberschrift=\"".$row['estate_title']."\" Provision=\"bernd\" Waehrung=\"EUR\" Importmodus=\"importieren\" HausKategorie=\"Sonstige\" Wohnflaeche=\"210.23\" Etagenzahl=\"1\" Baujahr=\"0\" Haustiere=\"erlaubt\" GrundstuecksFlaeche=\"0.00\" >\n";
$str .="<Adresse Strasse=\"\" Hausnummer=\"\" Ort=\"".$row['estate_place_id']."\" Postleitzahl=\"".$row['estate_place_id']."\" Laenderkennzeichen=\"DEU\" />\n";
$str .="<Kontaktperson Anrede=\"Herr\" Vorname=\"Niki\" Name=\"Kreppel\" Strasse=\"Waldschmidtstr\" Haunummer=\"7\" Ort=\"Muenchen\" Postleitzahl=\"81545\" Laenderkennzeichen=\"DEU\" Telefon=\"089-44444\" Mobiltelefon=\"01777777\" Homepage=\"www.sn-immo-123.com\" email=\"info@deine.com\" />\n";
$str .="<Objektbeschreibung>".$row['estate_description']."</Objektbeschreibung>\n";
$str .="<Lage>".$row['estate_location']."</Lage>\n";
$str .="<Ausstattung>".$row['estate_fixtures']."</Ausstattung>\n";
$str .="<SonstigeAngaben></SonstigeAngaben>\n";
$str .="<MultimediaAnhang AnhangArt=\"bild\" Dateiname=\"fuellobjekt.jpg\" Titel=\"b1\"/>\n";
$str .="<MultimediaAnhang AnhangArt=\"bild\" Dateiname=\"fuellobjekt2.jpg\" Titel=\"b2\"/>\n";
$str .="<MultimediaAnhang AnhangArt=\"bild\" Dateiname=\"header.jpg\" Titel=\"b3\"/>\n";
$str .="<MultimediaAnhang AnhangArt=\"link\" Dateiname=\"http://www.immo-1234.de\" Titel=\"Weiter Informationen auf unserer Homepage\"/>\n";
$str .="<Mietpreise Kaltmiete=\"".$row['estate_price']."\" Heizkosten=\"0.00\" StellplatzMiete=\"100.00\" />\n";
$str .="</HausMiete>\n";
    }
$str .="</Anbieter>\n";
$str .= "</IS24ImmobilienTransfer>\n";
/**
* usw...
* Du hängst alle Daten des Objekts/Kunden in deinen String mit
* ein und kannst diesen dann entweder ausgeben oder in die Datei
* schreiben.
*
* Zuerst schreiben wir ihn in die Datei:
* fwrite(): http://de.php.net/manual/de/function.fwrite.php
*/
fwrite($fh, $str);

/**
* Die zweite Möglichkeit, ausgeben:
*/
echo $str;

/**
* Und das Handle noch zu machen:
*/
fclose($fh);

?>
 
Zurück