2016-07-25 1 views
0

여러 개의 쿼리를 사용하여 as3 목적으로 XML을 생성해야합니다.XML이 다중 쿼리를 통해 변형되었습니다

하나의 쿼리 만 사용하면 모든 것이 잘 동작합니다.

멀티 쿼리가 작동하면 문제가 시작됩니다.

지금 XML 헤더가 숨겨져있는 경우 구조가 화면에 표시되고 잘 보입니다.

그러나 헤더가 활성화가되면, 아무것도 작동! 내가 "에코"를 사용했다

이전
<?php 
$dbHost = "localhost"; 
$dbUser = "root"; 
$dbPass = ""; 
$dbName = "test"; 
$dbTable = "pizzaroma"; 

$mysqli = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName); 
if ($mysqli->connect_errno) 
echo "la conection ha fallado: ".$mysqli->connect_errno; 

$query = "SELECT * FROM ".$dbTable." WHERE cat='pizza' AND act='1' ORDER BY ID ASC; "; 
$query .= "SELECT * FROM ".$dbTable." WHERE cat='pasta' AND act='1' ORDER BY ID ASC; ";  

if ($mysqli->multi_query($query)) { 
    // header("Content-type: text/xml"); 
     echo "<?xml version='1.0' encoding='UTF-8'?>"; 
     echo "<pics>"; 
do { 
    echo "<theme name='temporaly'>"; 
    if ($result = $mysqli->store_result()) { 

     while ($row = $result->fetch_assoc()) { 

      echo "<pic name='".$row['NAME']."' desc='".$row['DESCES']."' price='".$row['PRICE']."'/>"; 
      echo "</pic>"; 
     } 
     $result->free(); 
    } 
     echo "</theme>"; 
    if ($mysqli->more_results()) {   
    } 

    } 
    while ($mysqli->next_result()); 
     echo "</pics>"; 
} 

    $mysqli->close(); 
    ?> 
+0

나는 PHP와 다른 언어들에서 이것을 자주 보았다. XML의 문자열 연결을 작성하지 마십시오. PHP는'createElement()','appendChild()', 그리고 다른 메소드들과 함께 SimpleXML과 DomDocument와 같은 전용 클래스들을 가지고있다. XML은 텍스트 파일이 아닙니다. – Parfait

+0

또한 설명해주십시오 : * 헤더가 활성화되면 아무 것도 작동하지 않습니다! *. 여러 개의 쿼리를 사용하여 화면 에코 커팅 XML을 해제합니까? 이 문제는 PHP가 아닌 as3 문제 일 수 있습니다. – Parfait

+0

파르 펫 답장을 보내 주셔서 감사합니다! 그래서 나는 concadenation 이외의 다른 방법을 사용해야합니다. 내가 그들을 나중에 (simpleXML) 봐, 걸릴 것입니다 .. secon 부분에 응답 .. 지금까지 나는 브라우저에서 PHP를 실행하고 .. 언제 작품 as3 (하지만이 단 한 줄의 문장 쿼리/MySQL), ...... 헤이! 나는 여기 저기에 손을 대기 전에 모든 것을 보내려고했지만 갑자기 모든 것이 매력처럼 날아간다. 내가 한 일은 .. – Pixel2Media

답변

0

.. 지금 대신 필자가 "의 printf"를 넣어 ..하지만 일부 라인은, 내가 만약 확실하지 않다 :

은 내 코드에서 봐 주시기 바랍니다 그것이 이유였습니다.하지만 지금은 효과가 있습니다. 그것은 나에게

"엄격한 기준을 던지고 : mysqli_next_result를(). 설정에는 다음의 결과가 없습니다,이 함수/메소드를 호출 할 것인지 여부를 확인하는 mysqli_more_results()/mysqli :: more_results()를 호출하세요 "내가이 줄이 발견 그래서 도움을 찾고 : XML 오류에 대한 문제를 해결

do{} while(mysqli_more_results($db) && mysqli_next_result($db)); 

. 내가 범주 이름이 포함 된 배열에서 요소로 출력 serialIDs을 연결 않습니다 .. 어떻게 지금 D

>> $i=1; and ... do {printf("<theme name='".$i++."'>"); 

하지만 : 나중에 i've에

<?php 


$dbHost = "localhost"; 
$dbUser = "root"; 
$dbPass = ""; 
$dbName = "test"; 
$dbTable = "pizzaroma"; 

$mysqli = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName); 
if ($mysqli->connect_errno) 
echo "la conection ha fallado: ".$mysqli->connect_errno; 

$query = "SELECT * FROM ".$dbTable." WHERE cat='pizza' AND act='1' ORDER BY ID ASC; "; 
$query .= "SELECT * FROM ".$dbTable." WHERE cat='pasta' AND act='1' ORDER BY ID ASC; "; 
$query .= "SELECT * FROM ".$dbTable." WHERE cat='carne' AND act='1' ORDER BY ID ASC; "; 


if ($mysqli->multi_query($query)) { 
     header("Content-type: text/xml"); 
     printf("<?xml version='1.0' encoding='UTF-8'?>"); 
     printf("<pics>"); 
do { 
    printf("<theme name='temporaly'>"); 
    if ($result = $mysqli->store_result()) { 

     while ($row = $result->fetch_assoc()) { 

      echo "<pic name='".$row['NAME']."'/>"; 

     } 
     $result->free(); 
    } 
     echo "</theme>"; 

    } 
    while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli)); 

     echo "</pics>"; 
} 

    $mysqli->close(); 
    ?> 

는 쉬웠다 XML 출력을 직렬화했다. 뭔가 같은 ...

경우 이름 = "1"다음

어떤 생각을 = "firtsArrayChild을"이름? 그러나 나는 그것이 다른 질문을위한 또 다른 노래라고 생각합니다! 덕분에

관련 문제