我一直在寻找我在 SW 上的问题的答案,但到目前为止还没有运气......所以就这样吧。我正在编写一个表单,用户可以在其中搜索在服务器上的 xml 文件中写入的项目……搜索功能运行良好;表单将值发送到 php 文件,并使用 simplexml 使用带有 if/else 语句的 foreach 从 xml 文件中检索数据。但是,当在 xml 文件中找不到项目时,问题就出现了。
这是我的php:
<?php
$zip = $_POST['zip'];
$id = $_POST['id'];
$xml = simplexml_load_file("lista.xml");
foreach ($xml as $entry){
if (($entry->zipCode == $zip) && ($entry->id == $id)){
?>
<p>Id: <?php echo $entry->id;?></p>
<p>Zip: <?php echo $entry->zipCode;?></p>
<p>Item: <?php echo $entry->item;?></p>
<?php
}
else {echo 'nothing found';}
}?>
这是我的xml:
<?xml version="1.0" encoding="utf-8"?>
<entries>
<entry>
<id>id1</id>
<zipCode>zip1</zipCode>
<item>1</item>
</entry>
<entry>
<id>id2</id>
<zipCode>zip2</zipCode>
<item>2</item>
</entry>
<entry>
<id>id3</id>
<zipCode>zip3</zipCode>
<item>3</item>
</entry>
</entries>
问题是,如果整个 xml 文件中没有项目,它不会只显示一次“未找到”,而是在每个没有搜索查询的条目中显示“未找到”。因此,例如,如果 $zip = zip4 和 $id = id4 答案是:
nothing found
nothing found
nothing found
而不是只有一个“没有找到”
编写那段代码的正确方法是什么?先谢谢大家了!!!