Создание веб-сервиса (XML) с PHP для Java - PullRequest
0 голосов
/ 09 июля 2011

Я пытаюсь написать скрипт php, который экспортирует базу данных и распечатывает содержимое в формате XMl.Так что у меня есть это

<?php
require('connect.php');

$query = mysql_query("SELECT * FROM blog_comments");
$database="MyWebsite";
$table = "blog_comments";
echo mysql_error();


echo "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";

echo "<$database>";
$i=0;
while($row=mysql_fetch_assoc($query))
{
    echo "<$table>";
            while ($i < mysql_num_fields($query))
            {
                $meta = mysql_fetch_field($query);
                echo "<".$meta->name.">".$row['$meta->name']."</".$meta->name."><br/>";
                $i++;
            }
            $i=0;
    echo "</$table>";
}

echo "</$database>";


?>

И мой вывод

<?xml version="1.0" encoding="utf-8" ?>
<MyWebsite>
<blog_comments>
    <></>
    <></>
    <></>
    <></>
    <></>
    <></>
    <></>
    <></>
</blog_comments>
<blog_comments>
    <></><></><></><></><></><></><></><></>
</blog_comments>
<blog_comments> 
    <></><></><></><></><></><></><></><></>
</blog_comments>
<blog_comments>
    <></><></><></><></><></><></><></><></>
</blog_comments>
<blog_comments>
    <></><></><></><></><></><></><></><></>
</blog_comments>
<blog_comments>
    <></><></><></><></><></><></><></><></>
</blog_comments>
<blog_comments>
    <></><></><></><></><></><></><></><></>
</blog_comments>
<MyWebsite>

Число все правильно, но по какой-то причине я не получаю печатные значения.Я делаю это, потому что хост моего сайта не разрешает удаленные подключения к базе данных, и мне нужно подключиться к базе данных из моего Java-приложения.Поэтому я хочу вызвать php-страницу из моего java-приложения, и она ответит xml, содержащим мои данные, а затем я проанализирую этот XML и использую соответствующие данные

Мне нужна помощь, как заставить эту работу работать, чтобы я могдостичь вышеуказанной цели .. спасибо большое.

1 Ответ

1 голос
/ 09 июля 2011

Я не уверен, но я думаю, что mysql_fetch_assoc в основном "сжигает" результат вашего запроса, и что для того же запроса вы не можете вызвать его первым.Однако вам не нужно собирать всю эту информацию о поле, если все, что вам нужно, это имя, просто используйте:

echo "<{$table}>";
foreach($row as $key => $val){
    echo "<{$key}>{$val}</{$key}>";
}
echo "</{$table}>";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...