2012-08-10 96 views
-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()提供的無效參數。錯誤「爲foreach()提供的無效參數」

+0

什麼是'ejecutar_query'。這聽起來像髒東西:D – PeeHaa 2012-08-10 19:33:41

+0

這個功能會導致查詢。毫無疑問,它工作正常。 – Gusgus 2012-08-10 19:34:11

+0

在這種情況下,您可能需要更改爲'execute_query' :) – PeeHaa 2012-08-10 19:36:09

回答

0

改變您的for循環:

while($row = mysql_fetch_array($result)) { 
    $rows[] = $row['ETA']; 
    echo $row['ETA']; 
} 
print_r($rows); // To double check 
2

錯誤告訴你一切:$result實際上不是一個數組(或者至少不是一個填充數組)。

你不能echo一個數組。對其執行var_dump()print_r

另外,您在循環之前設置了$rows = array();。跆拳道,夥計?

你基本上說「對於這個空陣列的每個索引......做東西。」

而是嘗試:

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

+0

請停止鏈接到那個可怕的「SO文章」 – 2012-08-10 19:42:26

+0

@tereško當人們停止使用已棄用的函數時,我會停止嘗試糾正它們。 – Matt 2012-08-10 19:43:19

+2

@tereško如果你不喜歡它,建議一個替代方案。成爲社區的一部分。 – Matt 2012-08-10 19:44:18

0

我假設$結果是一個MySQL的結果集,在這種情況下,你不只是遍歷它,你就需要用一些方法把結果設置爲一個數組,如:

while($row = mysqli_fetch_array($result)) { 
    $rows[] = $row['tm']; 
    echo $row['tm']; 
} 
相關問題