私のSQLステートメントから問題があります。結果をエコーすると、重複した結果(2つの同じ結果)が表示されます。MySqlの重複した結果PHP
これは、以下の私のコードです:
$stmt = $DB_con->prepare("SELECT * FROM applicantpersonaldetails apd "
. "LEFT JOIN employementdetails ed ON apd.ApplicantID = ed.ApplicantID "
. "LEFT JOIN sourceoffunds sof ON apd.ApplicantID = sof.ApplicantID "
. "LEFT JOIN existingbankproducts ext ON apd.ApplicantID = ext.ApplicantID "
. "WHERE apd.AccountID ='{$accountId}' AND applicantType ='main';");
$stmt->execute();
if ($stmt->rowCount() > 0) {
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
extract($row);
echo $row['EmploymentStatus'];
?>
<?php
}
} else {
?>
<div class="">
<div class="alert alert-warning">
<span class="glyphicon glyphicon-info-sign"></span> No Data Found ...
</div>
</div>
<?php
}
?>
**警告**:PDOを使用する場合は、[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)を使用する必要があります。プレースホルダ値を使用して、ユーザーデータを別々の引数として提供します。このコードでは、潜在的に深刻な[SQLインジェクションのバグ](http://bobby-tables.com/)があります。文字列補間や連結を使用せず、代わりに[prepared statements](http://php.net/manual/en/pdo.prepared-statements.php)を使用し、 '$ _POST'や' $ _GET'データをクエリ。この問題やその他の問題については、[PHP The Right Way](http://www.phptherightway.com/)を参照してください。 – tadman
データに重複行があるか、結合の結果重複行が発生します。あなたのデータを見ることなく、伝えることは不可能です。どの関係やテーブルが問題になるかを見るまで、MySQLワークベンチやMySQLコンソールでクエリを分割してください。 – Cfreak
なぜ私がここでextract()を使用しているのか不思議です。それはあなたの問題に貢献していませんが、あなたのwhileループの範囲では必ずしも役立つものではありません。 – Difster