前提・実現したいこと
お世話になります。解決方法が思いつかないため、ヒントを得るためこの場を拝借いたします。
目的としては、テーブル"game_info"のカラム"g_id"のデータが条件に成り立てば、配列変数のデータとして管理したい。
ですが、以下のソースコードではうまく取得できませんでした。
取得できるようにしたいと思っております。何が原因なのでしょうか。ご教授いただければと思います。
補足
・SQL文はコマンドプロンプトからは取得できますが、PHPかではうまく動作しません。
・エラーを解読する限り、0というインデックスは存在しないので表示することができないを確認できた。
同じSQL文をSQL上で実行した。3件取得することができた。
・データベースの問題も考えて、PHP上で他のテーブルに向けたInsert処理ができることを確認しましたが、問題ありません。
(やりたいイメージ)
//$id_array[$cnt] = $game["g_id"];
$id_array["1"] = "20";
$id_array["2"] = "30";
$id_array["3"] = "15";
発生している問題・エラーメッセージ
Notice: Undefined offset: 0 in C:\xampp\htdocs\data\test\main.php on line 40 NULL
該当のソースコード
PHP
1//初期宣言 2$id_array = array(); 3$cnt = "0"; 4 5//共通ファイルの呼び出し 6require_once "common.php"; 7//データベース呼び出し 8$db = getDb(); 9 10try{ 11 //条件:リリース日"release_day "から三カ月以内のカラム"g_id"のデータを取得するSQL文 取得件数は3件以内とする。 12 $sql = "SELECT g_id FROM game_info WHERE release_day > (NOW()-INTERVAL 3 MONTH) limit 3"; 13 $stmt = $db -> prepare($sql); 14 $stmt->execute(); 15 //データ取得がFalseになるまで処理を実施する。 16 while($game = $stmt -> fetch(PDO::FETCH_ASSOC)){ 17 //配列変数"$id_array"に取得したデータを順に格納する。 18 $id_array[$cnt] = $game["g_id"]; 19 //カウント用の変数を+1する。 20 $cnt += "1"; 21 } 22 //処理内でエラーが発生した場合 23}catch(PDOException $e){ 24 print $e->getMessage(); 25} 26 27//エラー箇所の40行目 データを確認するために記載 28var_dump($id_array["0"]); 29
補足情報(FW/ツールのバージョンなど)
環境
・PHP 7.4.3
・mysql 15.1
回答2件
あなたの回答
tips
プレビュー