1

现在第一个有效,但它不会进入第二个..

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>";
        }
    }
4

4 回答 4

3

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

;您在语句的末尾还有一个if导致问题的语句。

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($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>";
}

此外,您可能希望在回声中使用换行符。它对浏览器中的输出没有影响,但它使您自己阅读 HTML 变得更加容易。你可以这样做:

echo "<td>" . $row2["rank"] . "</td>\n";

唯一的区别是当您查看代码时,enxt 位将从新行开始。

编辑:重新没有进入第二个循环

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

于 2012-08-20T23:28:19.733 回答
0

更改查询本身...第一个查询是

$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 语句:)

于 2012-08-20T23:31:15.400 回答
0

当您不在两个循环之间“重新查询”时,您已经到达了结果的末尾。所以第二个while循环没有什么可做的。

您必须重置它,然后再继续:

mysql_data_seek($result, 0);
于 2012-08-20T23:33:46.900 回答
0

我相信您遇到的问题是;在 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>";
    }
}
于 2012-08-20T23:30:54.493 回答