-2

30 日間の平均ボリュームを返すはずの php-mysql コードがありますが、それを実行するたびに、キャッチされないタイプ エラーが発生します。デバッグ時に、配列が true として返されるように見えます。また、phpadmin/mysql で同じクエリを実行すると、1900 以上の結果が返されます。助けが要る...

...
$datediff= date('Y-m-d', strtotime($today . " - 30 day"));
$q_vol="SELECT ticker,AVG(volume) as AVGVol FROM historicalprice WHERE (pricedate>='".$datediff."') GROUP BY ticker";
    echo $q_vol;
    $result = mysqli_query($conn,$q_vol);
    echo mysqli_error($conn);
    var_dump($result);
    $rowcount=mysqli_num_rows($result);
    
    echo $rowcount;
    while($row=mysqli_fetch_array($result)) {
        echo "Success";
        $ticker=$row['ticker'];
        $vol=round($row['AVGVol'],2);
...
    }

エラーは、「while($row=mysqli_fetch_array($result))」行に対するものです。

私が得ている出力は次のとおりです。

SELECT ticker,AVG(volume) as AVGVol FROM historyprice WHERE (pricedate>='2022-01-31') GROUP BY ticker

object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(2) ["lengths"]=> NULL ["num_rows"]=> int(1987 ) ["型"]=> int(0) }

致命的なエラー: Uncaught TypeError: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in [file]:24 Stack trace: #0 file: mysqli_fetch_array(true) #1 {main} throw in [ファイル] 24行目

ありとあらゆるアイデアが役に立ちます。

4

0 に答える 0