在 SQL 中找不到多个值

can't find multiple values in SQL

我有一个充满玩家的数据库,我正在尝试创建一个页面来将他们注册到特定的锦标赛中。锦标赛总监将按用户名(只有 "firstname.lastname")搜索玩家。

我遇到的问题是,当我 运行 循环回显每个 $players[$x] 它只给出第一个匹配的数据库记录的 ID,并为每个匹配重复一次数字.而不是 returning ID 7, 11, 26 它将 return 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));}

你的 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 的攻击

对于同一查询,您有多个 fetch,请将 $run_query = mysqli_query($dbcon, $query); 之后的代码替换为以下代码:

 $players = array ();
 while ($dbsearch = mysqli_fetch_assoc($run_query))
     {
         array_push($players, $dbsearch['PlayerID']);;
     }