在 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']);;
}
我有一个充满玩家的数据库,我正在尝试创建一个页面来将他们注册到特定的锦标赛中。锦标赛总监将按用户名(只有 "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']);;
}