0

我需要使用多个查询并将它们发送出去以及格式正确的 xml 用于 as3 目的。

当我只使用一个查询时,一切正常。

当多查询操作时,问题就开始了。

现在,当 //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();
    ?>
4

1 回答 1

0

早些时候我使用“echo”,..现在我把“printf”放在那里,..但只有一些行,我不确定这是否是原因..但现在有效。它把我扔了

“严格标准:mysqli_next_result():没有下一个结果集。请调用 mysqli_more_results()/mysqli::more_results() 来检查是否调用此函数/方法”所以寻求帮助我在那里找到了这一行:

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

解决了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; ";
$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 输出,这很容易:D

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

但现在,.. 我如何将输出 serialIDs 与包含类别名称的数组中的元素相关联。就像是...

如果 name="1" 那么 name="firtsArrayChild"

任何想法?但我认为那是另一个问题的另一首歌!谢谢

于 2016-07-25T19:16:23.200 回答