我有这个代码来从数据库中获取用户列表并按分数对它们进行排序。
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
我想做的是,当进程达到一个确定的用户名时,停止循环过程。
答案 0 :(得分:1)
将break
与if
条件
while($rows=mysql_fetch_array($result)){
if($rows['name'] == 'yourname') {
break;
}else {
//your code
}
}
答案 1 :(得分:1)
你可以这样做
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
if($row['username']=='DecidedUser')
break;
}
答案 2 :(得分:1)
在这样的mysql查询中使用WHERE。
$sql="SELECT * FROM users WHERE user_name='targetUserName' ORDER BY score DESC";
$result=mysql_query($sql);
此处user_name是users表中的mysql fieldname。
答案 3 :(得分:0)
使用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;
}
答案 4 :(得分:0)
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?
答案 5 :(得分:0)
在你想要添加内容的时候。
if($rows['username'] == "targetUserName"){return;}
您也可以使用break;
而不是返回,但是如果需要返回,您可以return true;
让脚本知道您的函数找到了用户名:)