私は2つのテーブルを持っています。 id_product、price、unity、およびreferenceを含む私の最初のテーブルps_product。私は、名前と呼ばれる列を含む別のテーブルps_product_langに参加しようとしています。JOINが機能しないのはなぜですか?
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT id_product, price, unity, reference FROM ps_product JOIN ps_product_lang ON ps_product.id_product WHERE ps_product_lang.id_product = id_product");
$stmt->execute();
$product = $stmt->fetchAll();
echo '<div class="table-responsive">';
echo '<table class="table table-striped">';
echo '<th>Checkbox</th><th>Product ID</th><th>Product Name</th><th>Price</th><th>Unit</th><th>Reference</th>';
foreach ($product as $row) {
print '<tr>';
print '<td><input type="checkbox" name="'. $row["id_product"] .'" value="'. $row["id_product"] .'"></td>';
print '<td>'. $row["id_product"] .'</td>';
print '<td>'. $row["name"] .'</td>';
print '<td>'. $row["price"] .'</td>';
print '<td>'. $row["unity"] .'</td>';
print '<td>'. $row["reference"] .'</td>';
print '</tr>';
}
echo '</table>';
echo '</div>';
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
はなぜ何に等しい$行[「名前」]は、なぜ私が取得しています:私はまた、以下の私のコードを提供してきた
Error: SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id_product' in field list is ambiguous
:
私は、次のエラーを取得していますエラーが表示されますか?
2つ以上のテーブルに同じ名前のカラムがあり、あなたが話している通りにはうまくいかないことがあります。それぞれのテーブルをエイリアスし、関連するテーブルエイリアスとともにpreprendカラムを使用します。 –
特にid_productは両方のテーブルにあるように見えますが、selectではエイリアス化されず、joinではエイリアス化されません。エンジンではどちらを選択するかわからない、両方のテーブルに存在する選択項目に他の列がある可能性があります。 – xQbert
あなたの参加にも重要な部分がありません – AsheraH