Php 如果语句未按预期工作

Php 如果语句未按预期工作,php,sql,if-statement,while-loop,Php,Sql,If Statement,While Loop,现在,第一个可以工作,但它无法到达第二个 while($row = mysql_fetch_array($result)) { $rank = $row["rank"]; if($rank == "President/Main Developer" or $rank == "Administrator/Asst. Developer") { echo "In first while"; echo "<td>" . $row

现在,第一个可以工作,但它无法到达第二个

while($row = mysql_fetch_array($result))
{
    $rank = $row["rank"];
    if($rank == "President/Main Developer" or $rank == "Administrator/Asst. Developer")
    {   
        echo "In first while";
        echo "<td>" . $row["username"] . "</td>";
        echo "<td style='color: #FF4747'>" . $row["rank"] . "</td>";
        $time = formatTime($row["joinDate"]);
        echo "<td>" . $time . "</td>";
        echo "</tr>";
        }
    }
while($row=mysql\u fetch\u array($result))
{
$rank=$row[“rank”];
如果($rank==“总裁/主要开发人员”或$rank==“管理员/助理开发人员”)
{   
呼应“在第一时间”;
回显“$row[“username”]”;
回显“$row[“rank”]”;
$time=formatTime($row[“joinDate”]);
回声“$time.”;
回声“;
}
}

不要在PHP if语句中使用
。正确的运算符是or的
|
和and的
&

您还有一个
if
语句末尾的code>

while($row = mysql_fetch_array($result))
{
    $rank = $row["rank"];
    if($rank == "President/Main Developer" || $rank == "Administrator/Asst. Developer")
    {   
        echo "In first while";
        echo "<td>" . $row["username"] . "</td>";
        echo "<td style='color: #FF4747'>" . $row["rank"] . "</td>";
        $time = formatTime($row["joinDate"]);
        echo "<td>" . $time . "</td>";
        echo "</tr>";
    }
}
while($row=mysql\u fetch\u array($result))
{
$rank=$row[“rank”];
if($rank==“总裁/主要开发人员”|$rank==“管理员/助理开发人员”)
{   
呼应“在第一时间”;
回显“$row[“username”]”;
回显“$row[“rank”]”;
$time=formatTime($row[“joinDate”]);
回声“$time.”;
回声“;
}
}
第二位代码:

while($row2 = mysql_fetch_array($result))
{
    echo "<tr>";
    echo "In second while";
    echo "<td>" . $row2["username"] . "</td>";
    if ($row["rank"]!="President/Main Developer" && $row2["rank"]!="Administrator/Asst. Developer")
    {
        echo "<td>" . $row2["rank"] . "</td>";
    }
    $time = formatTime($row2["joinDate"]);
    echo "<td>" . $time . "</td>";
    echo "</tr>";
}
while($row2=mysql\u fetch\u数组($result))
{
回声“;
回声“在第二时间”;
回显“$row2[“用户名”]”;
if($row[“rank”!=“总裁/主要开发人员”&$row2[“rank”!=“管理员/助理开发人员”)
{
回显“$row2[“秩”]”;
}
$time=formatTime($row2[“joinDate”]);
回声“$time.”;
回声“;
}
此外,您可能希望在回音中使用换行符。它对浏览器中的输出没有任何影响,但它使自己更容易阅读HTML。您可以这样做:

echo "<td>" . $row2["rank"] . "</td>\n";
echo”“$第2行[“排名”]。“\n”;
唯一的区别是,当您查看代码时,enxt位将从新行开始

编辑:我们没有进入第二个循环


如果希望使用同一行,则需要将其全部放入一个while循环中,或者对数据库再次运行查询。while循环将一次获取结果的每一行,直到它用完为止。除非您再次查询数据库,否则将不会有更多的行可获取,因此它永远不会进入循环。

我相信您遇到的问题是;在if语句的末尾。当你把;你是说句子到此结束,这就像说if的“then”部分是空的,然后{是不相关的

以下是您想要的:

while($row = mysql_fetch_array($result))
{
    $rank = $row["rank"];
    if($rank == "President/Main Developer" or $rank == "Administrator/Asst. Developer")
    {   
        echo "In first while";
        echo "<td>" . $row["username"] . "</td>";
        echo "<td style='color: #FF4747'>" . $row["rank"] . "</td>";
        $time = formatTime($row["joinDate"]);
        echo "<td>" . $time . "</td>";
        echo "</tr>";
    }
}
while($row=mysql\u fetch\u array($result))
{
$rank=$row[“rank”];
如果($rank==“总裁/主要开发人员”或$rank==“管理员/助理开发人员”)
{   
呼应“在第一时间”;
回显“$row[“username”]”;
回显“$row[“rank”]”;
$time=formatTime($row[“joinDate”]);
回声“$time.”;
回声“;
}
}
更改查询本身。。。 第一个问题是

$query1 = "SELECT * FROM `TABLE_NAME` WHERE `rank` = 'President/Main Developer' OR `rank` = 'Administrator/Asst. Developer'";

$query2 = "SELECT * FROM `TABLE_NAME` WHERE `rank` != 'President/Main Developer' OR `rank` != 'Administrator/Asst. Developer'";
你先做第一个,然后做最后一个,不需要IF语句:)

当你不在两个循环之间“重新查询”时,你已经到达了结果的末尾。因此第二个
-loop没有任何事可做

在继续之前,您必须重置它:

mysql_data_seek($result, 0);

|
有更高的优先级,
&
有更高的优先级,但是使用它们不会破坏你的脚本好吧,行得通,但是为什么它不能进入第二个while循环?@lawrencercherone,我从来都不知道。我一直使用
|
&
。谢谢你u!+1我已经习惯了Lua,它使用or和and。因为页面是如何构建的,我不能这样做。