
PHPとデータベースを使い、
顧客の条件に合った物件をメールに記載して送る処理を行っています。
その際、物件を記載する処理[下記(1)]の部分で同じ物件が記載されてしまいます。
(顧客によっては記載されない)
データベース上に重複する物件は存在しないので、なぜ二重に記載されてしまうのかわかりません。
どこを疑えば良いでしょうか。
メール記載例:物件1、物件2、物件3、物件1、物件4、物件2、物件1、物件3、物件3
(二重記載される際のパターンは見つかりません)
コード(簡略化)
----------------------------------------------------------------------
データデース1:顧客リスト
データベース2:物件リスト
//顧客取得
$sql_user = SELECT 条件 FROM 顧客リスト
$result_user = mysql_query($sql_user)
for($i = 0; $i < mysql_num_rows($result_user); $i++){
$arr_user= mysql_fetch_array($result_user);
//顧客の条件に合った物件を取得するSQL文
$sql_match = SELECT * FROM 物件情報リスト WHERE~条件~
$result_match =mysql_query($sql__match);
for($i = 0; $i < mysql_num_rows($result_match); $i++){
$arr_match= mysql_fetch_array($result_match);
[(1)]物件を記載する処理
}
1ユーザー分のメールを送る処理
}
----------------------------------------------------------------------
うまく説明できていなかったらすみません。
No.2ベストアンサー
- 回答日時:
SQLの結果が既に重複しているのか、その後の処理で重複させてしまったのか、
どこで重複したかを調べてみましょう。
「[(1)]物件を記載する処理」の前後と、「1ユーザー分のメールを送る処理」の前後、
var_dumpで該当の変数や配列がどういう値になっているか見てみましょう。
>>SQLの結果が既に重複しているのか
下記の回答者様に返信した内容と同様の疑問ですが、例えばデータベースに6件のデータがあった場合に
12件のデータを取得できるSQL文もあるのでしょうか。無知ですみません。
No.3
- 回答日時:
> データベースに重複するデータが入っていなかったとしても、SELECT文で取得する際に
> 同じデータを取得することもあるという事でしょうか。
SQL文の書き方次第ではあり得ます。
No.1
- 回答日時:
$sql_match の詳細なSQL文が分からないのと、物件リストにどのような形で条件が入っているのかが分からないと根本的な原因は分かりませんが、単純に物件情報が重複しないようにするなら $sql_match の SELECT に DISTINCT を付ければいいのではないでしょうか。
>>$sql_match の SELECT に DISTINCT を付ければいいのではないでしょうか
データベースに重複するデータが入っていなかったとしても、SELECT文で取得する際に
同じデータを取得することもあるという事でしょうか。
使用しているSQLの内容をしっかり把握できていないのですが、
どんな条件を入れたとしても、同じデータを2回取得することはないというのが現状の認識です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlがインストールされている...
-
#1062 - '0' は索引 'PRIMARY' ...
-
データベースの接続に失敗して...
-
[XAMPP Control Panel v3.2.4] ...
-
下記の問合せを行うクエリを、P...
-
テーブル名が可変の場合のクエ...
-
テーブル作成時のカラムについて
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
二重に記載されてしまう
-
perlを使ってレコード件数を取...
-
perlでデータベースに接続したい。
-
データベースファイル(.db)を開...
-
PL/SQLで@ファイル名が反応しま...
-
PL/SQLをWindowsのBATファイル...
-
sql*loader 数値のロード
-
あるDBから別のDBのテーブルをs...
-
mysqlにおけるホストのパーセン...
-
同じSQL文で極端に検索が遅くな...
-
utf8bomとutf8mb4の違いがいま...
-
メンテナンスプランについて
-
create databaseがうまくいきま...
-
MySQL4.1系でPHPが文字化けして...
-
SQLServerのselect文でデータ数...
-
【初心者です】SQLPLUSでのバッ...
-
複数行をINSERTで『ORA-00911: ...
-
数字で「そ」と「り」
-
バッチファイルではパスワード...
-
html上でMySQLにアクセス(Java...
おすすめ情報