我有这段代码:
foreach($summary as $machine)
{
$hostname = $machine['node'];
$result = mysql_query("SELECT OS FROM machines WHERE ind='$hostname'");
while($row = mysql_fetch_array($result))
{
if($row == 'solaris')
{
$partition_os = 'export/home';
}
else
{
$partition_os = '/home';
}
}
}
<partition<?php echo $i; ?>><?php echo $partition_os; ?></partition<?php echo $i; ?>>
查询的输出是:(没有where
)
mysql> SELECT OS FROM machines;
+---------+
| OS |
+---------+
| NULL |
| solaris |
+---------+
我的问题是,在我的xml(这是针对ajax)中,我只看到/home/
而不是export/home
。
$hostname
应该没问题,因为我之前使用它。
谢谢!
答案 0 :(得分:2)
mysql_fetch_array()
返回一个数组,你在这里将数组与String进行比较。
尝试使用$row[0] == 'solaris'
进行比较。
答案 1 :(得分:2)
替换它:
if($row == 'solaris')
使用:
if($row['OS'] == 'solaris')
答案 2 :(得分:1)
尝试在foreach循环中创建echo语句:
foreach($summary as $machine) {
$hostname = $machine['node'];
$result = mysql_query("SELECT OS FROM machines WHERE ind='$hostname'");
while($row = mysql_fetch_array($result)) {
if($row == 'solaris') {
$partition_os = 'export/home';
} else {
$partition_os = '/home';
}
}
echo "<partition$i>".$partition_os."</partition$i>";
}
我看不到$i
是什么。
答案 3 :(得分:0)
很难说你是否遗漏了一些<?php
标签以简洁或什么,但似乎你的XML不在你的循环中。这意味着您只使用循环中设置的$partition_os
的最后一个值打印一次(整个循环完成后)。
根据你对另一个答案的评论(你在print_r
处),看起来你的查询返回两行,你正在寻找的'solaris',然后是空的。这是后者(空)设置您的$partition_os
值。
(...其他答案都是正确的,您需要比较$row[0]
或$row['OS']
)