- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:二重に記載されてしまう)
PHPとデータベースを使用した物件メール送信処理で同じ物件が二重に記載される原因と対処方法
このQ&Aのポイント
- PHPとデータベースを使用して顧客の条件に合った物件をメールに記載して送る処理を行っています。
- しかし、物件を記載する処理の部分で同じ物件が二重に記載される現象が発生しています。
- データベース上に重複する物件は存在しないので、原因を特定するためにコードを確認しましたが、問題の箇所が見つかりませんでした。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
SQLの結果が既に重複しているのか、その後の処理で重複させてしまったのか、 どこで重複したかを調べてみましょう。 「[(1)]物件を記載する処理」の前後と、「1ユーザー分のメールを送る処理」の前後、 var_dumpで該当の変数や配列がどういう値になっているか見てみましょう。
その他の回答 (2)
- t_ohta
- ベストアンサー率38% (5253/13739)
回答No.3
> データベースに重複するデータが入っていなかったとしても、SELECT文で取得する際に > 同じデータを取得することもあるという事でしょうか。 SQL文の書き方次第ではあり得ます。
質問者
お礼
「物件を記載する処理」の部分で、直前の顧客の物件を重複して記載していたことが原因でした。 ご回答ありがとうございました。
- t_ohta
- ベストアンサー率38% (5253/13739)
回答No.1
$sql_match の詳細なSQL文が分からないのと、物件リストにどのような形で条件が入っているのかが分からないと根本的な原因は分かりませんが、単純に物件情報が重複しないようにするなら $sql_match の SELECT に DISTINCT を付ければいいのではないでしょうか。
質問者
お礼
>>$sql_match の SELECT に DISTINCT を付ければいいのではないでしょうか データベースに重複するデータが入っていなかったとしても、SELECT文で取得する際に 同じデータを取得することもあるという事でしょうか。 使用しているSQLの内容をしっかり把握できていないのですが、 どんな条件を入れたとしても、同じデータを2回取得することはないというのが現状の認識です。
お礼
>>SQLの結果が既に重複しているのか 下記の回答者様に返信した内容と同様の疑問ですが、例えばデータベースに6件のデータがあった場合に 12件のデータを取得できるSQL文もあるのでしょうか。無知ですみません。