Mailinglisten-Archive |
Hallo, ich nehme immer das folgende skript. das kann man auch leicht abwandeln und die db-feldnamen als 'sprechende' xml-tags mitführen (array). Gruß, Dirk <?php require_once("inc.class.genxml.php4"); $X = new XML(); $X->SqlString = "SELECT * FROM `tbl` LIMIT 0, 30;"; $X->Type = 1; $X->DB = "dbn"; $X->DBhost = "dbh"; $X->DBuser = "dbu"; $X->DBpassword = "dbp"; $X->DoXML(); ?> <?php /* Seite: inc.class.genxml.php4 */ class XML { var $SqlString; var $IsError; // 1 there is a problem !!! var $ErrorString; // If there is an error, this string explains it var $Type; // Which format do you want your XML ? var $DB; // Database Name var $DBhost; // Database Host var $DBuser; // DataBase User var $DBpassword; // DataBase Password // HERE I explain $Type /* For Example : 1 (default) each value are in a tag called data <dataxml> <row> <data>value field1 row1</data> <data>value field2 row1</data> <data>value field3 row1</data> </row> <row> <data>value field1 row2</data> <data>value field2 row2</data> <data>value field3 row2</data> </row> </dataxml> 2 each value is in a tag called dataN , where N is a position of field <dataxml> <row> <data1>value field1 row1</data1> <data2>value field2 row1</data2> <data3>value field3 row1</data3> </row> <row> <data1>value field1 row2</data1> <data2>value field2 row2</data2> <data3>value field3 row2</data3> </row> </dataxml> 3 each value is in a tag called with the name of field <dataxml> <row> <fieldname1>value field1 row1</fieldname1> <fieldname2>value field2 row1</fieldname2> <fieldname3>value field3 row1</fieldname3> </row> <row> <fieldname1>value field1 row2</fieldname1> <fieldname2>value field2 row2</fieldname2> <fieldname3>value field3 row2</fieldname3> </row> </dataxml> 4 each value is in a tag with an attributes called fieldname with the name of field <dataxml> <row> <data fieldname="fieldname1">value field1 row1</data> <data fieldname="fieldname2">value field1 row1</data> <data fieldname="fieldname3">value field1 row1</data> </row> <row> <data fieldname="fieldname1">value field1 row2</data> <data fieldname="fieldname2">value field1 row2</data> <data fieldname="fieldname3">value field1 row2</data> </row> </dataxml> */ function XML() { // Initialize the values with DEFAULT value $this->IsError=0; $this->Type=1; $this->ErrorString="NO errors ;)"; $this->SqlString=""; } function MakeConnection () { $link = mysql_connect ($this->DBhost, $this->DBuser, $this->DBpassword) or die ("I can't connect with DataBase :("); mysql_select_db ($this->DB) or die ("I'm connecting with Database Server but I can't select your DB."); return $link; } function DoXML() { if ($this->SqlString=="") { $this->IsError=1; $this->ErrorString="Error in Sql Query !!!"; return -1; } $link=$this->MakeConnection(); $result = mysql_query($this->SqlString, $link); if ($result==FALSE) { $this->IsError=1; $this->ErrorString="Error in SQL Query : ".$this->SqlString; return -1; } // OK... let's create XML ;) echo "<?xml version=\"1.0\"?>\n"; echo "<dataxml>\n"; // HEADER With the name of fields echo " <fields>\n"; $i = 0; $FieldsVector=array(); while ($i < mysql_num_fields ($result)) { $meta = mysql_fetch_field ($result); if ($meta) { echo " <field>".$meta->name."</field>\n"; $FieldsVector[]=$meta->name; $i=$i+1; } } echo " </fields>\n"; // And NOW the Data ... echo " <rows>\n"; while ($row = mysql_fetch_array ($result)) { echo " <row>\n"; for ($j=0; $j<$i; $j++) { $FieldName=""; // Name of TAG $Attributes=""; switch ($this->Type) { case 1: $FieldName="data"; break; case 2: $FieldName="data".$j; break; case 3: $FieldName=$FieldsVector[$j]; break; case 4: $FieldName="data"; $Attributes=" fieldname=\"".$FieldsVector[$j]."\""; } echo " <".$FieldName.$Attributes.">".$row[$j]."</".$FieldName.">\n"; } echo " </row>\n"; } echo " </rows>\n"; echo "</dataxml>"; //OK free ... ;) mysql_free_result($result); mysql_close ($link); } // End Function : DoXML } // Fine Class XML ?> -----Ursprüngliche Nachricht----- Von: mwolf_(at)_suedstern-ag.de [mailto:mwolf_(at)_suedstern-ag.de] Gesendet: Donnerstag, 18. April 2002 11:22 An: mysql-de_(at)_lists.4t2.com Betreff: DB-Tabelle -> XML Hallo! Bevor ich anfange ein php-script (oder auch in perl) zu schreiben, welches meine MySql-Tabellen in ein XML-Format konvertiert (d.h. in die einfachste Umsetzung -> Tabspalte = XML-Tag Tabname = XML-Root) und damit einen Tag verbringe einfach eine Umfrage an Euch, ob es schon etwas dieser Art gibt. Es würde mich wundern, wenn noch keiner vor mir auf diesen Gedanken gekommen ist. Ich bedanke mich fuer jeden Hinweis schon einmal im voraus. Markus --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive