1

プレーヤーでいっぱいの DB があり、特定のトーナメントにプレーヤーを登録するためのページを作成しようとしています。トーナメント ディレクターは、ユーザー名 (「firstname.lastname」のみ) でプレイヤーを検索します。

私が経験している問題は、ループを実行して各 $players[$x] をエコーするときに、最初に一致した DB レコードの ID のみを提供し、一致ごとに番号を 1 回繰り返すことです。ID 7、11、26 を返すのではなく、7、7、7 を返します。誰か理由を説明してください。

.php ファイルに次のコードを記述しました。

session_start();
if (isset($_POST['newsearch']) === true && empty($_POST['newsearch'] === false)){
require 'dbconnect.php';
$term = $_POST['newsearch'];
$terms = "%" . $term . "%";

$query = ("SELECT PlayerID FROM players WHERE Username LIKE '$terms'");
$run_query = mysqli_query($dbcon, $query);
$search = mysqli_fetch_assoc($run_query);
$players = array ();

    do{
    //Get data from players table
    $PlayerID = $search['PlayerID'];
array_push ($players, $PlayerID);        
    }
        while ($dbsearch = mysqli_fetch_assoc($run_query));}
4

2 に答える 2

1

while ループが間違っています

$query = ("SELECT PlayerID FROM players WHERE Username LIKE '$terms'");
$run_query = mysqli_query($dbcon, $query);
$search = mysqli_fetch_assoc($run_query);
$players = array ();

do{
    //Get data from players table
    $PlayerID = $search['PlayerID'];
    array_push ($players, $PlayerID);        
    }
    while ($search = mysqli_fetch_assoc($run_query));
}

$search代わりに置く$dbsearch

$search = mysqli_fetch_assoc($run_query))

注:クエリはSQLIに対して脆弱です

于 2015-08-25T07:51:57.070 に答える