• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【PHP】配列の値が上書きされる)

【PHP初心者必見】配列の値が上書きされる!?解決方法まとめ

このQ&Aのポイント
  • PHPとMYSQLとHTMLでweb画面を作成している初心者が、ループでSQLを複数回回し、その結果を配列に格納したいが、毎回最後の一つの結果しか格納されない問題に直面。解決策を探して試行錯誤したが未解決。質問者が教えてほしい。
  • PHP初心者が、ループでSQLを複数回回し、結果を配列に格納したいが、毎回最後の結果しか格納されないという問題に遭遇。調査と試行錯誤の結果、解決策が見つからず困惑中。助けてくれる方を求める。
  • PHPとMYSQLとHTMLでweb画面を作成している初心者が、ループでSQLを複数回回し、結果を配列に格納したいが、毎回最後の一つの結果しか格納されないと問題。調査と試行錯誤を重ねたが解決できず、教えてほしいという質問。

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

ループの中で $results = $statement->fetchAll(); を実行していますが、これは全件を入れる文です。 したがって 8でループ $results = $statement->fetchAll();id=8で3件あれば3件格納 ↓ 9でループ $results = $statement->fetchAll();id=9で3件あれば3件格納 ↓ 10でループ $results = $statement->fetchAll();id=10で3件あれば3件格納 となります。 $sql = "select * from Item where 1 = 1 and id=8 "; $statement = $pdo->prepare( $sql ); $statement->execute(); $results = $statement->fetchAll(); $sql = "select * from Item where 1 = 1 and id=9 "; $statement = $pdo->prepare( $sql ); $statement->execute(); $results2 = $statement->fetchAll(); $sql = "select * from Item where 1 = 1 and id=10 "; $statement = $pdo->prepare( $sql ); $statement->execute(); $results3 = $statement->fetchAll(); こういうふうに使います。

w_horse
質問者

お礼

ありがとうございます!! 早速工夫してやってみます!!!! 本当に丁寧に教えて頂き、本当にありがとうございました。 いろいろ調べた中で、「変数名を変えると上書きされない」という情報はあったのですが、まさか、配列の変数のことであるとは思わず、「追加モード」などがあるのかと思ってしまいました。 どうもありがとうございました。

関連するQ&A