-2
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() 提供的参数无效。

4

3 回答 3

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 开始支持)。如果您不确定要使用哪一个,请阅读这篇文章

于 2012-08-10T19:32:35.880 回答
0

我假设 $result 是一个 MySQL 结果集,在这种情况下你不只是迭代它,你需要使用一些方法将结果集转换为一个数组,如:

while($row = mysqli_fetch_array($result)) {
    $rows[] = $row['tm'];
    echo $row['tm'];
}
于 2012-08-10T19:35:48.070 回答
0

改变你的 for 循环:

while($row = mysql_fetch_array($result)) {
    $rows[] = $row['ETA'];
    echo $row['ETA'];
}
print_r($rows); // To double check
于 2012-08-10T19:38:38.230 回答