2013-06-01 149 views
0
输出

我的代码:从MySQL查询多维数组是XML

$go = mysql_query($sql); 
$fetch = mysql_fetch_array($go); 
$return = Array($fetch[0],$fetch[1],$fetch[2]); 
$results = Array( 
    'body' => Array ( 
      'entry' => Array ( 
      'title' => $return[0], 
      'image' => $return[1], 
      'caption' => $return[2] 
       ) 
        ) 
     ); 

XML输出:

此XML文件没有出现有任何相关的样式信息。文档树如下所示。

<callback xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"> 
<body> 
<entry> 
    <title>REHEARSAL DINNER IN SEATTLE, WA</title> 
    <image>images/portfolio_entries/default.png</image> 
    <caption>A wonderful in home event for 27 people.</caption> 
</entry> 
</body> 


我希望它遍历所有从查询行的,虽然和XML输出看起来是这样的:

<callback xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"> 
<body> 
    <entry> 
    <title>REHEARSAL DINNER IN SEATTLE, WA</title> 
    <image>images/portfolio_entries/default.png</image> 
    <caption>A wonderful in home event for 27 people.</caption> 
    </entry> 
    <entry> 
    <title>BLAH NUMBER TWO</title> 
    <image>images/portfolio_entries/default2.png</image> 
    <caption>Blah blah info about number two.</caption> 
    </entry> 
    <entry> 
    <title>BLAH NUMBER THREE</title> 
    <image>images/portfolio_entries/default3.png</image> 
    <caption>blah blah info about number three.</caption> 
    </entry> 
</body> 
</callback> 
+0

你有什么难与? – Prix

+0

它仅输出查询结果的第一行。我希望它循环遍历结果的所有行,如上面第二个输出中所示 – user1519235

回答

0
echo '<callback xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="schema.xsd"> 
<body>'; 
foreach($results['entry'] as $data{ 
    echo '<entry>'; 
    echo '<title>'.$data['title'].'</title>'; 
    echo '<image>'.$data['image'].'</image>'; 
    echo '<caption>'.$data['caption'].'</caption>'; 
    echo '</entry>'; 
} 
echo '</body>'; 

五月需要进一步调整,但这应该显示您的XML文件就好了。

编辑:

这将工作,如果你的阵列完全填充,要做到这一点,你会希望使用另一个循环填充数组,或者你可以使用while循环呼应了所有类似下面的行:

while ($row = mysql_fetch_assoc($result)) { 
    echo '<entry>'; 
    echo '<title>'.$row['database column name'].'</title>'; 
    echo '<image>'.$row['database column name'].'</image>'; 
    echo '<caption>'.$row['database column name'].'</caption>'; 
    echo '</entry>'; 
} 

很明显,您必须用您的MySQL数据库中的相关列名替换'数据库列名'。祝你好运,并让我知道你如何继续。