PHP:“While”循环为变量的每次迭代返回相同的值[重复]

问题描述 投票:0回答:2

我正在执行一个返回类似以下内容的查询:

route   |   busnumber
  2            300
  4            123
  2            455
 12            934

我的目标是打印/回显所有“busnumber”的列表,其中“route”= 2。 我知道我可以在数据库上执行查询来执行此操作,但我不想为每条路线运行此查询。结果集实际上是一个主复杂查询的一部分,因此我需要使用数组来实现我的目标。

查询工作正常并显示适当的信息。我还将结果返回到数组中。即...

    $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 循环。

php mysql loops foreach
2个回答
3
投票
if ($busroute='2'){

问题是你在这里没有检查它是否等于 2,而是将其分配为等于 2。将其更改为这样,就可以了:

if ($busroute=='2'){

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


while($row = mysql_fetch_assoc($result)) {
    if ($row['route'] == 2) {
        // do your stuff
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.