не может найти несколько значений в SQL

У меня есть БД, полная игроков, и я пытаюсь создать страницу, чтобы зарегистрировать их в конкретном турнире. Директор турнира будет искать игроков по имени пользователя (это всего лишь «имя_листа»).

Проблема, с которой я сталкиваюсь, заключается в том, что когда я запускаю цикл для вывода каждого $ Players [$ x], он дает только идентификатор для первой соответствующей записи в БД и повторяет число один раз для каждого совпадения. Вместо того, чтобы возвращать 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));}

1

Решение

У вас есть больше, чем один fetch для того же запроса замените код после $run_query = mysqli_query($dbcon, $query); с этим кодом:

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

Другие решения

Ваш цикл 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

1

По вопросам рекламы [email protected]