我有这张桌子......
rss(
id serial,
title varchar(25) not null,
link text not null,
description TEXT not null,
imagename text
);
...我正在尝试使用php存储的数据创建一个xml文件。
$db = mysqli_connect("localhost", "root", "", "s3382313");
$q = 'select * from rss';
$run = mysqli_query($db, $q);
if( $run && mysqli_num_rows( $run ) ) {
$doc = new DOMDocument( '1.0' );
$doc->formatOutput = true;
$doc->preserveWhiteSpace = true;
$root = $doc->createElement( 'data' );
$doc->appendChild( $root );
while( ( $fetch = mysqli_fetch_assoc( $run ) )!== false ) {
$node = $doc->createElement( 'node' );
$root->appendChild( $node );
foreach( $fetch as $key => $value ) {
createNodes( $key, $value, $doc, $node );
}
}
$doc->save("thexmlfile.xml");
}
function createNodes( $key, $value, $doc, $node ) {
$key = $doc->createElement( $key );
$node->appendChild( $key );
$key->appendChild( $doc->createTextNode( $value ) );
}
我收到此错误:
警告:在第27行的C:\ xampp \ htdocs \ WeatherRadar \ process_XML.php中为foreach()提供的参数无效
第27行是:foreach( $fetch as $key => $value ) {
我该怎么办?
答案 0 :(得分:0)
我认为你的$fetch
的范围太多,它目前只测试while条件的有效性。
while((true != false)) {
//...
}
因此,重写:
while( $fetch = mysqli_fetch_assoc( $run )) {
/** $fetch will be scoped for the loop now **/
}
其次,对于调试,重要的是在迭代之前检查$fetch
的内容,因为它可能不是嵌套的结果集。