Переместите оператор echo в ваше время l oop.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
$positions=$row;
echo $positions['rank'];
}
Вам не нужно создавать новую переменную сейчас. Вы можете использовать $ row
while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
echo $row['rank'];
}
Похоже, вы не понимаете, что такое оператор while. Я бы начал с изучения основ c управления потоком.
== UPDATE ==
Комментарий ниже утверждает, что $ позиции должны быть массивом, который можно вернуть. Итак: Шаг 1 - сделать $ позиции массивом. Шаг 2 - Поместите каждую строку в массив. Шаг 3 - Вернуть массив. Следующий код не беспокоится о печати строк. Он сосредоточен исключительно на методе создания и возврата массива.
$positions = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC) ) {
$positions[] = $row;
}
return $positions;
Надеемся, очевидно, что $ позиции создается как пустой массив. Каждый раз, пока l oop, строка добавляется в массив. [] Означает «следующий индекс». Наконец, $ позиции возвращаются.