XML искажен из-за нескольких запросов MySQL

Мне нужно использовать несколько запросов и отправлять их как хорошо сформированный 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();
?>

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++."'>");

но теперь … как мне связать выходные серийные идентификаторы с элементами из массива, который содержит имена категорий. что-то вроде…

если name = «1», то name = «firtsArrayChild»

любая идея?
но я думаю, что это еще одна песня для другого вопроса там! Спасибо

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]