现在第一个有效,但它不会进入第二个......
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>";
}
}
答案 0 :(得分:3)
不要在PHP if语句中使用or
和and
。正确的运算符为||
for和&&
for和。
;
语句的末尾还有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循环将一次获取结果的每一行,直到它用完为止。除非您再次查询数据库,否则根本不会再有任何行要提取,因此它永远不会进入循环。
答案 1 :(得分: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>";
}
}
答案 2 :(得分: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语句:)
答案 3 :(得分:0)
当您在两个循环之间没有“重新查询”时,您已经到达结果的末尾。所以第二个while
- 循环无关。
你必须重置它,然后再继续:
mysql_data_seek($result, 0);