【发布时间】:2012-09-02 22:45:27
【问题描述】:
好的,我使用这个foreach 循环来解析xml 将结果数据添加到我的数据库中我需要设置$win 值,但它总是在它不应该b时返回3..
$myinfo = simplexml_load_file('http://mysite/results.xml');
foreach ($myinfo->Event as $info):
$cid=$info['EventID'];
$a=$info->Match['AScoreNT'];
$b=$info->Match['BScoreNT'];
if($a > $b){
$win =1;
} elseif($a < $b){
$win =2;
} else{
$win =3;
}
$sql = "
INSERT IGNORE INTO `engine4_event_wins`
SET `win_result` = $win,
`comp_id` = $cid;
";
mysql_query($sql);
endforeach;
<MyFeed>
<Event Sport="AFL" Description="AFL - Finals - Week 1" EventID="651239" FinalDate="2012-09-07T00:00:00">
<Match TeamA="Hawthorn" TeamB="Collingwood" AScoreNT="135" BScoreNT="97"/>
</Event>
<Event Sport="AFL" Description="AFL - Finals - Week 1" EventID="651240" FinalDate="2012-09-08T00:00:00">
<Match TeamA="Adelaide Crows" TeamB="Sydney Swans" AScoreNT="42" BScoreNT="71"/>
</Event>
</MyFeed>
【问题讨论】:
-
您确定这不是拼写错误吗?您缺少
;。也尝试使用显式大括号而不是您当前的方式.. -
@Thrustmaster 你是对的,我修复了丢失的
;。我认为这与他的问题没有任何关系,否则他不会一直打印3;) -
@xdazz 是的,我今天知道了,并编辑了我的评论 :)
-
var_dump( $info->Match['AScoreNT'], $info->Match['BScoreNT'] );这是否显示了您期望的值?你确定你是在比较整数,而不是字符串?
-
sprintf 没有占位符?那有什么意义呢?只需坚持使用简单的双引号字符串即可进行简单的变量插值。 sprintf 仅在您要对插入的值进行格式化/类型转换时才有用。
标签: php xml loops if-statement foreach