include_once 'include/connect_db.php';
$query="SELECT tm FROM schedule WHERE val='BT009';";
$result=ejecutar_query($query);
$rows = array();
if ($result && mysql_num_rows($result)) {
foreach ($result as $row):
$rows[] = $row['tm'];
echo $row['tm'];
endforeach;
}
我确定SQL查询应该返回1个条目。但是,echo输出'Array'。错误消息是:为foreach()提供的参数无效。
答案 0 :(得分:2)
错误告诉你一切:$result
实际上不是一个数组(或者至少不是一个填充的数组)。
你不能echo
一个数组。在其上执行var_dump()
或print_r
。
此外,您在循环之前设置$rows = array();
。 WTF,老兄?
你实际上是在说“为这个空数组的每个索引做点什么。”
而是尝试:
if (is_array($result) && count($result)) { ... }
如果$result
是来自mysql查询的结果集,并且您希望遍历 ,请尝试以下操作:
if (mysql_num_rows($result)) {
while ($row = mysql_fetch_array($result)) {
// do stuff
}
}
请注意:您应该停止使用mysql_*
个功能。他们被弃用了。而是使用PDO(从PHP 5.1开始支持)或mysqli(从PHP 4.1开始支持)。如果您不确定使用哪一个,read this article。
答案 1 :(得分:0)
我假设$ result是一个MySQL结果集,在这种情况下你不只是迭代它,你需要使用一些方法将结果集转换成如下数组:
while($row = mysqli_fetch_array($result)) {
$rows[] = $row['tm'];
echo $row['tm'];
}
答案 2 :(得分:0)
更改你的for循环:
while($row = mysql_fetch_array($result)) {
$rows[] = $row['ETA'];
echo $row['ETA'];
}
print_r($rows); // To double check