使用php和mysqli创建动态xml的问题

时间:2017-11-30 00:50:59

标签: php mysql web-services mysqli

我在PHP中遇到了一些问题:我想用PHP从MySQL数据库中获取一些数据来创建一个动态XML文件。我的代码如下所示:

Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /opt/lampp/htdocs/buuuh.php on line 13

我收到以下错误:

{{1}}

1 个答案:

答案 0 :(得分:0)

我认为您的问题可能是在尝试将变量添加到字符串之前没有结束您的引用尝试此操作:

例如,在第13行,你有

echo "  <anzahl>. $row['anzahl'] .</anzahl>\n\n";

它应该如下所示:

echo "  <anzahl>". $row['anzahl'] ."</anzahl>\n\n";    

你的整个街区应该是这样的

<?php
header("Content-type: text/xml");
echo '<?xml version="1.0" encoding="UTF-8"?>';

$sql = "SELECT bestellpositionen.id_bestellung, bestellpositionen.id, bestellpositionen.anzahl, produkte.preis * bestellpositionen.anzahl AS preisGesamt, bestellpositionen.id_produkt, produkte.name, produkte.beschreibung, produkte.preis AS preisEinzeln FROM bestellpositionen LEFT OUTER JOIN produkte ON (produkte.id = bestellpositionen.id_produkt) ORDER BY bestellpositionen.id_bestellung";
$result = $db->query($sql);

echo "<statistik>";

foreach ($result as $row) {
    echo '<bestellung id="' . $row['id_bestellung'] . '">';
    echo '<bestellposition id="' . $row['id'] . '">\n';
    echo "  <anzahl>". $row['anzahl'] ."</anzahl>\n\n";
    echo "  <preis>". $row['preisGesamt'] ."</preis>\n\n";
    echo '<produkt id="' . $row['id_produkt'] . '">\n';
    echo "  <name>". $row['name'] ."</name>\n\n";
    echo "  <beschreibung>". $row['beschreibung'] ."</beschreibung>\n\n";
    echo "  <preis>". $row['preis'] ."</preis>\n\n";
    echo "</produkt>";
    echo "</bestellposition>";
    echo "</bestellung>";
}
echo "</statistik>";

?>

至于你的第二个错误

error on line 2 at column 1: Extra content at the end of the document

正如您在上述评论中提到的,您可以通过注释掉这行代码来解决这个问题

header("Content-type: text/xml");