データベースからユーザーのリストを取得し、スコアで並べ替えるこのコードがあります。
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
私がやりたいことは、プロセスが決定されたユーザー名に達したときに、ループプロセスを停止することです。
このようにmysqlクエリでWHEREを使用します。
$sql="SELECT * FROM users WHERE user_name='targetUserName' ORDER BY score DESC";
$result=mysql_query($sql);
ここで user_name は users テーブルの mysql フィールド名です。
条件付きbreak
で使用if
while($rows=mysql_fetch_array($result)){
if($rows['name'] == 'yourname') {
break;
}else {
//your code
}
}
あなたはこれを行うことができます
$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){
if($row['username']=='DecidedUser')
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クエリを変更して代わりにやりたいことを行うことです.
$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 を使用する必要があります。 PHP で mysql_* 関数を使用してはいけないのはなぜですか?
あなたがラインに沿って何かを追加したいあなたの中に。
if($rows['username'] == "targetUserName"){return;}
return の代わりに使用することもできますがbreak;
、return を使用するreturn true;
と、必要に応じて関数がユーザー名を見つけたことをスクリプトに知らせることができます :)