0
我有三個表用戶,產品和用戶產品。SQL連接返回的結果不是數據庫中反映的結果
用戶具有用戶配置文件信息,產品具有主鍵,並且userproduct具有用於UserId和ProductId的兩個標題,用於匹配哪個用戶擁有哪個產品。
userproduct是建立在以下方式:
----------------------------------
| UserId (int) | ProductId (int) |
----------------------------------
| 1 | 1 |
----------------------------------
| 1 | 2 |
----------------------------------
我的PHP代碼如下:
$userId = 1;
$stmt = $pdo->prepare('SELECT * FROM product join userproduct on product.ProductId = userproduct.UserId where UserId = ?');
$stmt->execute([$userId]);
$products = $stmt->fetchAll();
foreach ($products as $productsOwned)
{
echo $productsOwned['ProductName'];
}
我會以爲這將回聲出產品1,產品2。但是,它回顯了Product1,Product1。
我已經查看過我的數據庫幾次,一切似乎都是按順序的,但是因爲我仍在學習SQL,所以我假設我在那裏犯了一個錯誤。任何指導將不勝感激。
我認爲你必須在'product.name'型我以爲你的意思是這'product.productName',所以我改變了我的代碼,但現在我得到以下錯誤:'注意:未定義的偏移量:0在第40行的C:\ xampp \ htdocs \ index.php中,第40行是:'echo $產品已自動['ProductName'];' –
嘗試var_dump結果($ products)並讓我知道你在那裏得到了什麼 – AfikDeri
我得到:'array(2){[0] => array(2){[「userId 「] => int(1)[」productName「] => string(9)」Product1「} [1] => array(2){[」userId「] => int(1)[」productName「] = > string(13)「Product2」}}' –