我有這段代碼從數據庫獲取用戶列表並按分數對它們進行排序。當到達用戶名時停止mysql_fetch_array
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
我想要做的是停止循環過程,當過程達到一個決定的用戶名。
我有這段代碼從數據庫獲取用戶列表並按分數對它們進行排序。當到達用戶名時停止mysql_fetch_array
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
我想要做的是停止循環過程,當過程達到一個決定的用戶名。
使用break
與if
條件
while($rows=mysql_fetch_array($result)){
if($rows['name'] == 'yourname') {
break;
}else {
//your code
}
}
非常感謝,這個作品非常完美! :d – 2013-04-05 12:47:37
使用break;
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
if(Reached_at_user_name)
break;
}
break;
是你的朋友
http://php.net/manual/en/control-structures.break.php
while($rows=mysql_fetch_array($result)){
if (
$row['username'] == 'username'
) {
break;
}
}
取決於你的意圖的另一種方法是隻更改SQL查詢到你想要做什麼,而不是,也就是類似如下它使用@includeThis變量來跟蹤它是否已經達到了預期的用戶名呢
$sql="
SELECT
u.*,
@includeThis AS includeThis,
@includeThis := IF(u.username = 'TargetUserName',0,@includeThis) AS updateIncludeThis
FROM users u, (SELECT @includeThis := 1) d
ORDER BY u.score DESC
HAVING includeThis = 1
";
此外,您不應該再使用mysql_函數,而應該使用mysqli_或PDO。 Why shouldn't I use mysql_* functions in PHP?
裏面你,而你想沿線的補充一下。
if($rows['username'] == "targetUserName"){return;}
你也可以使用break;
而不是回報,然而,返回你可以return true;
讓你的腳本知道你的功能找到的用戶名,如果需要的話:)
你可以做到這一點
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
if($row['username']=='DecidedUser')
break;
}
在這樣的mysql查詢中使用WHERE。
$sql="SELECT * FROM users WHERE user_name='targetUserName' ORDER BY score DESC";
$result=mysql_query($sql);
這裏user_name是用戶表中的mysql字段名。
呃......你知道WHERE條款,不是嗎? – 2013-04-05 09:30:02
是的,你究竟想要做什麼? – Mahendra 2013-04-05 09:32:19
爲什麼你想停止循環? – Jocelyn 2013-04-05 09:32:52