gpt4 book ai didi

php - XML 生成 PHP 脚本使用 foreach 循环将来自三列表的节点元素之间的错误列值的文本放入

转载 作者:行者123 更新时间:2023-11-29 14:28:27 24 4
gpt4 key购买 nike

尝试从返回的 SQL 查询结果生成 XML 文件。SQL 查询返回 ItemId , ItemName , ItemDescription来自Items table 。我想列出ItemName在 XML 中,如下所示:

XML

...
<item>
<name>ItemName1</name>
</item>
<item>
<name>ItemName2</name>
</item>
...

PHP

...
while($items = @mysql_fetch_assoc($query)){
foreach($items as $row){
}
$node = $doc->createElement('item');
$node = $root->appendChild($node);
$child = $doc->createElement('name');
$child = $node->appendChild($child);
$value = $doc->createTextNode($row['ItemName']); // !
$value = $child->appendChild($value);
}}
...

我的 XML 结构生成正确,但问题是我得到了每个项目的 ItemDescription 的第一个字母,而不是 ItemName里面每个 name像这样的元素:

...
<name>D</name>
...
<name>H</name>
...

前两项的字符串描述以字母 D 和 H 开头。

是什么导致了这种行为?

最佳答案

如果我理解正确,问题是 foreach() 它循环遍历 $row 数组中的每个键/值对。我不认为这是您想要的行为,因为 mysql 结果集中的每一行通常不是多维的。由于未找到索引“ItemName”,因此默认为 [0](值的第一个字符)。

尝试 while() 循环:

...
$resultset = mysql_query( $query );
while($row = @mysql_fetch_assoc($resultset)){
$node = $doc->createElement('item');
$node = $root->appendChild($node);
$child = $doc->createElement('name');
$child = $node->appendChild($child);
$value = $doc->createTextNode($row['ItemName']); // !
$value = $child->appendChild($value);
}
...

关于php - XML 生成 PHP 脚本使用 foreach 循环将来自三列表的节点元素之间的错误列值的文本放入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10488333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com