0

提供されたヘルプに事前に感謝します。

私は次のようなものを返すクエリを実行しています:

route   |   busnumber
  2            300
  4            123
  2            455
 12            934

私の目標は、すべての「バス番号」が「ルート」= 2 のリストを出力/エコーすることです。これを行うために DB でクエリを実行できることはわかっていますが、ルートごとにこのクエリを実行したくありません。結果セットは、実際には 1 つのマスターの複雑なクエリの一部であるため、配列を使用して目的を達成する必要があります。

クエリは正しく機能し、適切な情報が表示されます。また、結果を配列に返します。つまり...

    $query=("SELECT * from foo")
    $result=mysql_fetch_assoc($query);

私の現在のコードは次のようになります(私のコメントに注意してください):

    mysql_data_seek( $result,0);  // because I'm previously iterating through $result
while ($i2=mysql_fetch_assoc($result)) {
$busnumber=$i2['busnumber']; 
$busroute=$i2['route'];
echo "<div class='businfo'>";
if ($busroute='2'){           // I only want this to happen if $busroute=2
echo "Current Route = $busroute</br>";
echo "Bus Number : $busnumber </br>";
}
echo "</div>";
}

しかし、私が得ているのは、同じ '$busroute' (2) をエコーし​​ていますが、行ごとに異なる '$busnumber' です。

Current Route = 2
Bus Number : 194
Current Route = 2
Bus Number : 196
Current Route = 2
Bus Number : 2002
Current Route = 2
Bus Number : 2010
Current Route = 2
Bus Number : 2013

問題は、これらのバス番号のすべてがルート 2 の一部ではないことです。これは、すべてのルートのバス番号のリストです。$routenumber=2 の場合にのみ foreach ループを実行したい。

助けてくれてありがとう:)

4

2 に答える 2

0
$query = "SELECT * from foo";
$result = mysql_query($query);


while($row = mysql_fetch_assoc($result)) {
    if ($row['route'] == 2) {
        // do your stuff
    }
}
于 2013-02-20T21:45:05.567 に答える