Фатальная ошибка: вызов функции-члена fetch assoc () в строке


Я попытался выполнить запрос и повторить результат. echo "<h1>" . $row["SummonerId"]. "</h1>"; работает, и он распечатывает его на странице. Но почему-то эта ошибка произошла после того, как был напечатан результат:

Фатальная ошибка: вызов функции-члена fetch_assoc () в строке

Я видел много ошибок, подобных этой. Но это on a non-object , а не on string. Что это за ошибка?

Вот мой код:

$servername = "localhost:3307";
$username = "root";
$password = "";
$dbname = "st-datacollector";

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT * FROM summoner";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<h1>" . $row["SummonerId"]. "</h1>";  
        $summonerId = $row["SummonerId"];
        $url = "https://euw.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/" . $summonerId . "/recent?api_key=" . $api_key;

        $result = file_get_contents($url);
        $resultJSON = json_decode($result);


        foreach($resultJSON_decoded->games as $game){
            echo $game->gameMode." ".$game->gameType." ".$game->subType;
            echo "<br>";
        }           
    }
} else {
    echo "0 results";
}

$conn->close();
1 2

1 ответ:

$result переменная используется для цикла через запрос mysql, вы должны использовать различные имена переменных внутри вашего цикла

$servername = "localhost:3307";
$username = "root";
$password = "";
$dbname = "st-datacollector";

$conn = new mysqli($servername, $username, $password, $dbname);

$sql = "SELECT * FROM summoner";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        echo "<h1>" . $row["SummonerId"]. "</h1>";  
        $summonerId = $row["SummonerId"];
        $url = "https://euw.api.pvp.net/api/lol/euw/v1.3/game/by-summoner/" . $summonerId . "/recent?api_key=" . $api_key;

        $fcontents = file_get_contents($url);
        $resultJSON = json_decode($fcontents);

        foreach($resultJSON_decoded->games as $game){
            echo $game->gameMode." ".$game->gameType." ".$game->subType;
            echo "<br>";
        }           
    }
} else {
    echo "0 results";
}

$conn->close();

Еще одна маленькая вещь, которую я заметил.. $resultJSON и $resultJSON_decoded не совпадает внутри цикла