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 个条目。但是,回声输出"数组"。错误消息是:为 foreach() 提供的参数无效。
错误告诉你一切:$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 开始支持)。如果您不确定要使用哪一个,请阅读本文。
更改你的 for 循环:
while($row = mysql_fetch_array($result)) {
$rows[] = $row['ETA'];
echo $row['ETA'];
}
print_r($rows); // To double check
我假设$result是一个MySQL结果集,在这种情况下,您不仅要迭代它,还需要使用某种方法将结果集转换为数组,例如:
while($row = mysqli_fetch_array($result)) {
$rows[] = $row['tm'];
echo $row['tm'];
}