-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つのエントリを返すはずです。ただし、echo は「配列」を出力します。エラー メッセージは次のとおりです。foreach() に無効な引数が指定されました。

4

3 に答える 3

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 以降でサポート) を使用してください。どちらを使用すればよいかわからない場合は、この記事をお読みください

于 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 に答える