-2

データベースからユーザーのリストを取得し、スコアで並べ替えるこのコードがあります。

$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);

while($rows=mysql_fetch_array($result)){

私がやりたいことは、プロセスが決定されたユーザー名に達したときに、ループプロセスを停止することです。

4

6 に答える 6

1

このようにmysqlクエリでWHEREを使用します。

$sql="SELECT * FROM users WHERE user_name='targetUserName' ORDER BY score DESC";
$result=mysql_query($sql);

ここで user_name は users テーブルの mysql フィールド名です。

于 2013-04-05T09:36:56.963 に答える
1

条件付きbreakで使用if

while($rows=mysql_fetch_array($result)){
    if($rows['name'] == 'yourname') {
        break;
    }else {
        //your code
    }
}
于 2013-04-05T09:28:39.750 に答える
1

あなたはこれを行うことができます

$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);

while($rows=mysql_fetch_array($result)){
  if($row['username']=='DecidedUser')
   break;
}
于 2013-04-05T09:29:13.673 に答える
0

ブレークを使用します。

$sql="SELECT * FROM users ORDER BY score DESC";
$result=mysql_query($sql);

while($rows=mysql_fetch_array($result)){
  if(Reached_at_user_name)
   break;
}
于 2013-04-05T09:28:05.467 に答える
0

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_* 関数を使用してはいけないのはなぜですか?

于 2013-04-05T09:28:13.190 に答える
0

あなたがラインに沿って何かを追加したいあなたの中に。

if($rows['username'] == "targetUserName"){return;}

return の代わりに使用することもできますがbreak;、return を使用するreturn true;と、必要に応じて関数がユーザー名を見つけたことをスクリプトに知らせることができます :)

于 2013-04-05T09:28:44.100 に答える