![](/img/trans.png)
[英]How can I combine data from form and from three mysql tables to insert data in another table with php?
[英]Insert data from another table and also from form in MYSQL and PHP
我有一個表格,我將數據發布到mysql。 查詢應該將表單中的數據插入到table1中,還應該包含另一個table2中的數據,其中從表單中發送的ID等於table2中的ID?
我使用舊的mysql連接,我知道,不是最好的:-)和php!
希望有人可以幫助,謝謝:-)馬丁
想也許我應該給一些更多的信息:-)
table1稱為:書籍
從窗體,我有以下值:itemCode,itemQty,ownerID我有2靜態值:狀態,類型
table2中必須插入到table1中的值是:標題,描述,價格,封面
from table2中的字段isbn應該等於form中的itemCode。
到目前為止,這是我嘗試過的:
$bookid=$_POST['itemCode'];
$itemQty=$_POST['itemQty'];
$status='2';
$ownerID = $user->id;
$query="INSERT INTO books (name, description, price, picture, status, ownerID, itemqty, type, studie, isbn) SELECT (title, description, price, frontcover FROM isbnbooks WHERE isbn=$itemCode), $status, $ownerID, $itemQty, '1', '1', $bookid)";
更新:我也在這里嘗試過這個:
$bookid=$_POST['itemCode'];
$itemQty=$_POST['itemQty'];
$status='2';
$ownerID = $user->id;
$data2 = mysql_fetch_array (mysql_query("SELECT * FROM isbnbooks WHERE isbn = $bookid"));
$title = $data2[title];
$description = $data2[description];
$price = $data2[price];
$picture = $data2[frontcover];
$query="INSERT INTO books (name, description, price, picture, status, ownerID, itemqty, type, studie, isbn)
VALUES ($title, $description, $price, $picture, $status, $ownerID, $itemQty, '1', '1', $bookid)";
mysql_query($query) or die("Opps some thing went wrong");
在沒有代碼的情況下,建議使用以下工作流程ID:
提交表單->檢查和清除值->針對“表2”執行查找查詢並獲取相關值->使用表單和“ table2”數據提交更新查詢->成功更新后,通知用戶其信息處理->謝謝。
像這樣嗎? :
$data2 = mysql_fetch_array (mysql_query("SELECT * FROM table2 WHERE id2 = '1'"));
$data1 = data2['column2'];
mysql_query("INSERT INTO table1 VALUES('value1','$data2') WHERE id1 = id2);
如果您具有值'a'
和'b'
進入table1
f1
和f2
列; 在f3
您希望table2.field
的值(其中table2.id
為123)可以按照以下table2.id
准備和執行一條SQL語句:
INSERT INTO table1 (f1, f2, f3)
SELECT 'a', 'b', field FROM table2 WHERE id = 123;
為了進一步了解更新后的問題中的代碼,第一次嘗試的問題在於您正在嘗試將INSERT ... SELECT
與INSERT ... VALUES
混合使用; 可悲的是它們是相互排斥的。 但是,您可以改寫:
INSERT INTO books (
name,
description,
price,
picture,
status,
ownerID,
itemqty,
type,
studie,
isbn
)
SELECT
title,
description,
price,
frontcover,
:status, -- use prepared statements to prevent SQL injection
:ownerID, -- see http://bobby-tables.com/ for more info
:itemQty,
'1', -- do you really want a string containing a number?
'1',
:bookid
FROM isbnbooks
WHERE isbn=:itemCode;
您的第二次嘗試似乎應該起作用(盡管您確實應該使用准備好的語句,請參見上文!); 您有什么問題?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.