0

我有一个表格,我将数据发布到 mysql。查询应该将表单中的数据插入到 table1 中,还包括来自另一个 table2 的数据,其中从表单发送的 ID 等于 table2 中的 ID?

我使用旧的 mysql 连接,我知道,不是最好的 :-) 和 php!

希望有人可以提供帮助,谢谢:-)马丁

想也许我应该提供更多信息:-)

table1 被称为:书籍

从表单中,我有以下值:itemCode、itemQty、ownerID 我有 2 个静态值:状态、类型

table2 中必须插入 table1 的值是:title、description、price、frontcover

来自 table2 的字段 isbn 应该等于来自表单的 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");
4

3 回答 3

0

在没有代码的情况下,这里是工作流 id 推荐:

提交表单 -> 检查和清理值 -> 对“表 2”执行查找查询并获取相关值 -> 使用表单和“表 2”数据提交更新查询 -> 成功更新时,通知用户他们的信息是已处理-> 谢谢他们。

于 2012-04-24T18:35:37.243 回答
0

如果您有值'a''b'进入列f1f2;如果您希望wheretable1的值为 123,您可以按照以下几行准备和执行 SQL 语句:f3table2.fieldtable2.id

INSERT INTO table1 (f1, f2, f3)
  SELECT 'a', 'b', field FROM table2 WHERE id = 123;

除了在您更新的问题中看到代码之外,您第一次尝试的问题是您试图INSERT ... SELECTINSERT ... 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;

您的第二次尝试看起来应该可以工作(尽管您确实应该使用准备好的语句,见上文!);你有什么问题?

于 2012-04-24T18:46:12.527 回答
0

像这样的东西?:

$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);
于 2012-04-24T18:41:52.220 回答