2013-06-01 2 views
0
에 출력 될

내 코드 :다차원 배열은 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 데이터베이스의 관련 열 이름으로 바꾸어야합니다. 행운을 빌어 요, 당신이 어떻게 일어나는지 알려주세요.