[英]How do I Insert data from two tables into one table using MySQL PHP
我對此並不陌生,很抱歉成為新手。 基本上我有三個表。 一個是名為“ users_FP”的用戶表,其PKEY為“ User_FP_ID”,下一個表為“ uni_name”,其PKEY為“ uni_id”,最后是聯接表“ Favorites”,具有與其他兩個表相同的鍵。
我正在嘗試創建一個“添加到收藏夾”功能,該功能將允許用戶將uni添加到他們的收藏夾中。 我在PHPMyadmin中設置了所有關系。 我只是對聲明本身有疑問。
這是我的代碼。
if ($result->num_rows > 0) {
// output data of each row
echo "<form action='' method='post'>
<table class='table'>
<thead><tr>
<th>Name</th>
<th>Description</th>
<th>Address</th>
<th>Website</th>
<th>Favourites</th>
</tr>";
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo '<td>'.$row['name'].'</td>';
echo '<td>'.$row['description'].'</td>';
echo '<td>'.$row['address'].'</td>';
echo "<td><a href='".$row['url']."'>Visit Site</a></td>";
echo '<td><input type="submit" name="submit" value="Add" class="btnAddAction" /></td>';
echo "</thead></tr>";
}
} else {
echo "0 results";
}
if(isset($_POST['submit'])){
$sql1 = "INSERT INTO Favorites(User_FP_ID,uni_id)
VALUES ((SELECT User_FP_ID FROM users_FP WHERE User_FP_ID = '{$_SESSION['User_FP_ID']}'),
(SELECT uni_id FROM uni_name WHERE uni_id=uni_id));";
if ($conn->query($sql1) === TRUE) {
echo "New record added successfully";
} else {
echo "Error: " . $sql1 . "<br>" . $conn->error;
}
}
誰能幫我? 它給我錯誤“子查詢返回多於1行”,但我不明白為什么。 設置了auto_increment
您不能從兩個選擇中插入返回的結果超過1個的結果,它不會匹配,因此您必須像這樣將它們加入:
"INSERT INTO Favorites(User_FP_ID,uni_id)
(SELECT s.User_FP_ID,t.uni_id FROM users_FP s
INNER JOIN uni_name t on t.uni_id = s.uni_id
WHERE User_FP_ID = '{$_SESSION['User_FP_ID']}');"
似乎您是因為這種奇怪的條件而嘗試加入他們的(uni_id = uni_id),但是您沒有使用join,所以請告訴我這是否意味着您要這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.