【发布时间】:2026-02-15 16:25:02
【问题描述】:
我在从 XML 文件获取数据的 foreach 循环中有一个 IF 语句。然后,我想遍历 XML 文件中的每个条目,如果它不符合特定条件,则跳过将其放入表中。下面的代码只是跳过了每个条目,它返回空白,没有任何东西放在表格中。
PHP 代码:
<table width="500" border="0" cellpadding="5">
<tr>
<?php
$xml=simplexml_load_file("movie.xml") or die("Error: Cannot create object");
foreach($xml->children() as $movie) :
if($xml->sad<=$_GET['happiness']
&& $xml->agitated<=$_GET['calmness']
&& $xml->tired<=$_GET['tired']
&& $xml->scared<=$_GET['scared'] )
{?>
<td align="center" valign="center">
<img src="<?php echo $movie->path?>" width="150px" alt="<?php echo $movie->descrip?>"/>
<br />
<?php echo $movie->name ?>
</td>
<?php } endforeach; ?>
</tr>
</table>
XML 代码:
<movie>
<name>Harry Potter</name>
<path>images/harry.jpg</path>
<sad>50</sad>
<agitated>25</agitated>
<tired>50</tired>
<scared>75</scared>
</movie>
【问题讨论】:
-
可能您的 GET 变量和/或 XML 节点被视为字符串,而不是整数,所以
-
另一个建议:应该例如
$xml->sad<=$_GET['happiness']是$movie->sad<=$_GET['happiness']? -
我试过转换它们,但仍然无济于事!我完全被难住了
-
将它重命名为正确的 $movie 变量已经到了某个地方但没有完全修复它,现在它从显示空白变为只在 else{ 语句中显示我的错误消息!
-
我已经设法让它只使用一个 IF 语句,但是当我尝试在其中添加其他语句时它只是错误
标签: php html if-statement foreach