我有这段代码从数据库获取用户列表并按分数对它们进行排序。当到达用户名时停止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