Я думаю, что это признак некорректного дизайна.Похоже, вы пытаетесь найти результаты для 3 игроков.Вы перебираете 3 строки, но пытаетесь получить доступ к данным для всех 3 игроков в каждой итерации.Вместо этого вы должны получить доступ к данным каждого игрока в соответствующей итерации и составить список данных игрока.
Чтобы ответить на ваш вопрос напрямую, в итерации 1 вы пытаетесь получить доступ к элементам 0, 1 и 2, но $rows
заполнено только 0.
+-----------+-------------------------+--------------------------+
| Iteration | You're trying to access | You only have access to |
+-----------+-------------------------+--------------------------+
| 1 | 0,1,2 | 0 |
| 2 | 0,1,2 | 0,1 |
| 3 | 0,1,2 | 0,1,2 |
+-----------+-------------------------+--------------------------+
Пример
<?php
// Turn on error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Show MySQL errors as PHP exceptions
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include '../connect_database.php';
// Build up this list inside the loop.
$scores = [];
$sql = "SELECT score FROM dailyscore Where Id IN (1,2,3)";
date_default_timezone_set('America/New_York');
$result = $connect->query($sql);
while ($row = mysqli_fetch_assoc($result)){
// You only have access to a single $row here.
// Build up an array of the data you want instead of tring to access "other rows"
$scores[] = $row['score'];
}
// Now, you can use $scores to build $list... or build $list inside the loop.
?>
РЕДАКТИРОВАТЬ
Не хотите ли вы показать мне пример того, какприсвоить массиву результатов что-то вроде этого?$ list ['scores'] = массив ('data' => $ id1, 'data1' => $ id2, 'data2' => $ id3);
<?php
// Turn on error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
// Show MySQL errors as PHP exceptions
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
include '../connect_database.php';
// Build up this list inside the loop.
$scores = [];
$counter = 0;
$sql = "SELECT score FROM dailyscore Where Id IN (1,2,3)";
date_default_timezone_set('America/New_York');
$result = $connect->query($sql);
while ($row = mysqli_fetch_assoc($result)){
$keyName = 'data';
if ($counter > 0) {
$keyName = 'data' . $counter;
}
$scores[$keyName] = $row['score'];
$counter++;
}
$list['scores'] = $scores;
echo json_encode($list);