XML generation.
Bit of a security risk allowing parameters to select db and table on live server (unless user is restricted or replace the $_GET with fixed value.)
Outputs xml with standard format for <config> part to generate forms in flash.
<?php
//
// makeXML.php?db=dbname&table=tablename
//
set_time_limit(300);
$host = "localhost";
$user = "root";
$password = "root";
$database = $_GET['db'];
$table = $_GET['table'];
mysql_connect($host,$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$querytext="SELECT * FROM ".$table;
$result=mysql_query($querytext);
if ($result){
$num=mysql_num_rows($result);
}else{
$num=0;
}
?>
<?php
header('Content-Type: text/xml');
echo "<?xml version='1.0'?>";
if ($num > 0){
?>
<<?php echo $table?>>
<config>
<?php
// Display number of fields
echo "<numFields>".mysql_num_fields($result)."</numFields>";
$i = 0;
$primaryKey = "";
$nameArray = array();
$maxLengthArray = array();
$typeArray = array();
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
$nameArray[$i] = $meta->name;
$maxLengthArray[$i] = $meta->max_length;
$typeArray[$i] = $meta->type;
if ($meta->primary_key){
$primaryKey = $meta->name;
}
$i++;
}
$i = 0;
echo "<fieldNames>";
while ($i < count($nameArray)) {
echo "<field".$i.">".$nameArray[$i]."</field".$i.">";
$i++;
}
echo "</fieldNames>";
$i = 0;
echo "<fieldMaxLength>";
while ($i < count($maxLengthArray)) {
echo "<field".$i.">".$maxLengthArray[$i]."</field".$i.">";
$i++;
}
echo "</fieldMaxLength>";
$i = 0;
echo "<fieldType>";
while ($i < count($typeArray)) {
echo "<field".$i.">".$typeArray[$i]."</field".$i.">";
$i++;
}
echo "</fieldType>";
?>
<primaryKey><?php echo $primaryKey?></primaryKey>
<numRecords><?php echo $num?></numRecords>
</config>
<?php
$i=0;
while ($i < $num) {
$ID=mysql_result($result,$i,"ID");
$value=mysql_result($result,$i,"value");
$title=mysql_result($result,$i,"title");
$description=mysql_result($result,$i,"description");
?>
<row>
<ID><?php echo $ID?></ID>
<weighting><?php echo $value?></weighting>
<title><?php echo $title?></title>
<description><?php echo $description?></description>
</row>
<?php
$i = $i + 1;
}
?>
</<?php echo $table?>>
<?php
}
?>