簡體   English   中英

如何使用MySQL PHP將兩個表中的數據插入到一個表中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM