/** * @param mysql_resource - $queryResult - mysql query result * @param string - $rootElementName - root element name * @param string - $childElementName - child element name */ function sqlToXml($queryResult, $rootElementName, $childElementName) { $xmlData = "\n"; $xmlData .= "<" . $rootElementName . ">"; while($record = mysql_fetch_object($queryResult)) { /* Create the first child element */ $xmlData .= "<" . $childElementName . ">"; for ($i = 0; $i < mysql_num_fields($queryResult); $i++) { $fieldName = mysql_field_name($queryResult, $i); /* The child will take the name of the table column */ $xmlData .= "<" . $fieldName . ">"; /* We set empty columns with NULL, or you could set it to '0' or a blank. */ if(!empty($record->$fieldName)) $xmlData .= $record->$fieldName; else $xmlData .= "null"; $xmlData .= ""; } $xmlData .= ""; } $xmlData .= ""; return $xmlData; } USAGE : /* Sql query */ $result = mysql_query("SELECT * from company"); /* If you want to process the returned xml rather than send it to the browser, remove the following line. */ header("Content-Type: application/xml"); echo sqlToXml($result, "companies", "company");