【问题标题】:PHP: "While" loop returns same value for each iteration of the variablePHP:“While”循环为变量的每次迭代返回相同的值
【发布时间】:2013-02-06 01:54:22
【问题描述】:

提前感谢您提供的任何帮助。

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

route   |   busnumber
  2            300
  4            123
  2            455
 12            934

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

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

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

我当前的代码如下所示(注意我的 cmets):

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

再次感谢您的帮助:)

【问题讨论】:

  • 再次将 $busroute='2' 更改为 $busroute=='2'

标签: php mysql loops foreach


【解决方案1】:
if ($busroute='2'){

问题是你没有在这里检查它是否等于 2,你把它分配给等于 2。把它改成这个就可以了:

if ($busroute=='2'){

【讨论】:

  • 哇..我不敢相信我没听懂,但这就是为什么我需要一双额外的眼睛!非常感谢。我很高兴我的其他逻辑是正确的:)
【解决方案2】:
$query = "SELECT * from foo";
$result = mysql_query($query);


while($row = mysql_fetch_assoc($result)) {
    if ($row['route'] == 2) {
        // do your stuff
    }
}

【讨论】:

    猜你喜欢
    • 2021-11-03
    • 2021-05-30
    • 2015-08-02
    • 2012-05-28
    • 2012-03-04
    • 2017-01-15
    • 2019-11-13
    • 1970-01-01
    • 2014-07-06
    相关资源
    最近更新 更多