Мне нужно использовать несколько запросов и отправлять их как хорошо сформированный 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();
?>
раньше я использовал «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»
любая идея?
но я думаю, что это еще одна песня для другого вопроса там! Спасибо
Других решений пока нет …