Php xml解析foreach循环+;只插入一条记录?
我一辈子都搞不懂如何让这段代码处理多条记录。代码工作正常,它只插入第一条记录,然后停止 提要: PHP:Php xml解析foreach循环+;只插入一条记录?,php,mysql,xml,simplexml,Php,Mysql,Xml,Simplexml,我一辈子都搞不懂如何让这段代码处理多条记录。代码工作正常,它只插入第一条记录,然后停止 提要: PHP: <?php $con=mysqli_connect("localhost","vadevco_reticket","3wer5top","vadevco_reticket"); if( ! $xml = simplexml_load_file('feed.xml') ) { echo 'unable to load XML file'; } else { f
<?php
$con=mysqli_connect("localhost","vadevco_reticket","3wer5top","vadevco_reticket");
if( ! $xml = simplexml_load_file('feed.xml') ) {
echo 'unable to load XML file';
} else {
foreach( $xml as $event ) {
$idrandom = rand(0,99);
$title = $event->item->title;
$description = $event->item->description;
$link = $event->item->link;
$guid = $event->item->guid;
$pubDate = $event->item->pubDate;
$image_t = $event->item->image_thumb;
$image_l = $event->item->image_large;
$displayDates = $event->item->displayDates;
$sql = "INSERT INTO `vadevco_reticket`.`events` (`title`, `description`, `pubDate`, `image_t`, `image_l`, `displayDates`, `id`, `event_id`) VALUES ('$title', '$description', '$pubDate', '$image_t', '$image_l', '$displayDates','','$idrandom')";
mysqli_query($con,$sql);
foreach( $event->item->showDates->showDate as $eventDate ) {
$date = $eventDate->date;
$venue = $eventDate->venue;
$complex = $eventDate->complex;
$region = $eventDate->region;
$costs = $eventDate->costs;
$sql2 = "INSERT INTO `vadevco_reticket`.`instances` (`id`, `event_id`, `date`, `venue`, `complex`, `city`, `region`, `costs`) VALUES ('', '$idrandom', '$date', '$venue', '$complex', '$city','$region','$costs')";
mysqli_query($con,$sql2);
}
}
}
?>
您需要遍历项目,而不是xml本身:
foreach( $xml->item as $event ) {
$idrandom = rand(0,99);
$title = $event->title;
$description = $event->description;
...
}
-在你的例子中:你犯了一个错误,仔细检查你循环的每个变量是否包含你要查找的内容,然后修复它。这很简单,我们对此无能为力。另一个提示:将代码分成子例程。让一个例程做一件特定的事情。测试每个例程是否运行良好,然后将这些例程组合在一起。这通常会自动工作,否则很容易调试。与比较:请停止连接查询,学习如何使用准备好的语句。@tereško谢谢,你能详细介绍一下吗,这样我就知道该研究什么了?@Chris'Horris'Edington,查看准备好的语句。应该给你一些指示。