02. december 2005 - 16:37
Der er
3 kommentarer og
1 løsning
Output XML fra MySql DB?
Vil gerne ende op med følgende:
<?xml version="1.0" encoding="UTF-8" ?>
- <parent lang="da-DK">
- <child>
- <childchild ChildID="000001">
<title>Burger</title>
</childchild>
</child>
</parent>
Hvor ChildID er første kolonne fortløbende numre i DB værdi 1 men skal være med 6 cifre 000001 og "title" "Burger" er anden kolonne.
Hvordan konstrueres dette i PHP?
02. december 2005 - 21:22
#1
mysqldump --xml databasename [tables]
-
<mysqldump>
-
<database name="mysql">
-
<table_structure name="db">
<field Field="Host" Type="char(60)" Null="" Key="PRI" Default="" Extra=""/>
<field Field="Db" Type="char(64)" Null="" Key="PRI" Default="" Extra=""/>
<field Field="User" Type="char(16)" Null="" Key="PRI" Default="" Extra=""/>
<field Field="Select_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Insert_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Update_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Delete_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Create_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Drop_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Grant_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="References_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Index_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Alter_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Create_tmp_table_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<field Field="Lock_tables_priv" Type="enum('N','Y')" Null="" Key="" Default="N" Extra=""/>
<key Table="db" Non_unique="0" Key_name="PRIMARY" Seq_in_index="1" Column_name="Host" Collation="A" Null="" Index_type="BTREE" Comment=""/>
<key Table="db" Non_unique="0" Key_name="PRIMARY" Seq_in_index="2" Column_name="Db" Collation="A" Null="" Index_type="BTREE" Comment=""/>
<key Table="db" Non_unique="0" Key_name="PRIMARY" Seq_in_index="3" Column_name="User" Collation="A" Cardinality="6" Null="" Index_type="BTREE" Comment=""/>
<key Table="db" Non_unique="1" Key_name="User" Seq_in_index="1" Column_name="User" Collation="A" Null="" Index_type="BTREE" Comment=""/>
<options Name="db" Engine="MyISAM" Version="9" Row_format="Fixed" Rows="6" Avg_row_length="433" Data_length="2598" Max_data_length="1859720839167" Index_length="4096" Data_free="0" Create_time="2005-10-24 18:42:28" Update_time="2005-12-01 22:42:18" Collation="utf8_bin" Create_options="" Comment="Database privileges"/>
</table_structure>
-
<table_data name="db">
-
<row>
<field name="Host">%</field>
<field name="Db">test</field>
<field name="User"/>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">Y</field>
<field name="Delete_priv">Y</field>
<field name="Create_priv">Y</field>
<field name="Drop_priv">Y</field>
<field name="Grant_priv">N</field>
<field name="References_priv">Y</field>
<field name="Index_priv">Y</field>
<field name="Alter_priv">Y</field>
<field name="Create_tmp_table_priv">Y</field>
<field name="Lock_tables_priv">Y</field>
</row>
-
<row>
<field name="Host">%</field>
<field name="Db">test\_%</field>
<field name="User"/>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">Y</field>
<field name="Delete_priv">Y</field>
<field name="Create_priv">Y</field>
<field name="Drop_priv">Y</field>
<field name="Grant_priv">N</field>
<field name="References_priv">Y</field>
<field name="Index_priv">Y</field>
<field name="Alter_priv">Y</field>
<field name="Create_tmp_table_priv">Y</field>
<field name="Lock_tables_priv">Y</field>
</row>
-
<row>
<field name="Host">localhost</field>
<field name="Db">snort</field>
<field name="User">root</field>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">N</field>
<field name="Delete_priv">N</field>
<field name="Create_priv">N</field>
<field name="Drop_priv">N</field>
<field name="Grant_priv">N</field>
<field name="References_priv">N</field>
<field name="Index_priv">N</field>
<field name="Alter_priv">N</field>
<field name="Create_tmp_table_priv">N</field>
<field name="Lock_tables_priv">N</field>
</row>
-
<row>
<field name="Host">localhost</field>
<field name="Db">snort_archive</field>
<field name="User">root</field>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">N</field>
<field name="Delete_priv">N</field>
<field name="Create_priv">N</field>
<field name="Drop_priv">N</field>
<field name="Grant_priv">N</field>
<field name="References_priv">N</field>
<field name="Index_priv">N</field>
<field name="Alter_priv">N</field>
<field name="Create_tmp_table_priv">N</field>
<field name="Lock_tables_priv">N</field>
</row>
-
<row>
<field name="Host">%</field>
<field name="Db">snort</field>
<field name="User">ids</field>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">Y</field>
<field name="Delete_priv">Y</field>
<field name="Create_priv">Y</field>
<field name="Drop_priv">Y</field>
<field name="Grant_priv">Y</field>
<field name="References_priv">Y</field>
<field name="Index_priv">Y</field>
<field name="Alter_priv">Y</field>
<field name="Create_tmp_table_priv">Y</field>
<field name="Lock_tables_priv">Y</field>
</row>
-
<row>
<field name="Host">%</field>
<field name="Db">snort\_archive</field>
<field name="User">ids</field>
<field name="Select_priv">Y</field>
<field name="Insert_priv">Y</field>
<field name="Update_priv">Y</field>
<field name="Delete_priv">Y</field>
<field name="Create_priv">Y</field>
<field name="Drop_priv">Y</field>
<field name="Grant_priv">Y</field>
<field name="References_priv">Y</field>
<field name="Index_priv">Y</field>
<field name="Alter_priv">Y</field>
<field name="Create_tmp_table_priv">Y</field>
<field name="Lock_tables_priv">Y</field>
</row>
</table_data>
</database>
</mysqldump>
02. december 2005 - 22:35
#3
Den klasse må du lige kommentere:
Havde nu nærmere tæmkt på:
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
$i=0;
foreach ($line as $col_value) {
$fieldname=mysql_field_name($result,$i);
if($i==0){
// For the first column (where $i=0) output the <record> tag
// with the id set to the column value and then begin the rowitems child
print "<record id='$col_value'>";
print ("<rowitem");
}
else
// For all other rows, output the fieldname=fieldvalue attributes on rowitem
print (" $fieldname='$col_value'");
$i++;
}
// When done, close the record tag for this record
print ("/></record>");
Ikke de vilde klasser, da jeg ikke ved så meget om PHP...