2012-04-24 38 views
0

私はmysqlにデータを投稿するフォームを持っています。クエリは、フォームからtable1にデータを挿入するだけでなく、フォームから送信されるIDがtable2のIDと等しい別のテーブル2のデータも含める必要がありますか?別のテーブルからのデータと、MYSQLとPHPのフォームからのデータの挿入

私は以前のmysql接続を使用しています。わかっていますが、最高のものではありません:-)とPHP!

table1に呼び出された:-)

誰かが助けることを願って、 :-)おかげでマーティン

は、私はいくつかのより多くの情報を与えるべきかもしれないと思う:本フォームから

、私が持っていますitemCode、itemQty、OWNERID iは2静的な値があります:値以下の状態を、タイプ

TABLE1に挿入されなければならない表2の値は、次のとおり タイトル、descriptio n、price、frontcover

from 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)"; 

UPDATE: を私もここにこれを試してみました:コードが存在しない場合に

$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"); 
+1

多分私はいくつかの情報を与える必要があります:-) – Jespersgaard

+0

私の改訂された答えは、あなたが提供したコードを考慮に入れます。 – eggyal

答えて

0

あなたが列f1table1f2に入る値'a''b'を持っている場合。あなたの更新、問題のコードを見るとさらに

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

、問題:とf3にあなたはtable2.idは123で、あなたはこれらの線に沿ってSQLステートメントを準備して実行することができtable2.fieldの値が欲しいですあなたの最初の試みは、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; 

あなたの第二の試みはそれを動作させるべきかのように見えます。あなたはそれでどんな問題を抱えていますか?

0

を、ここではワークフローIDをお勧めします:

フォームが提出されます - >値をチェックしてサニタイズする - > "テーブル2"に対してルックアップクエリを実行し、関連する値を取得する - >フォームと "t有効な更新が行われたときにはable2 "data - >その情報が処理されたことをユーザーに通知する - >ありがとう。

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); 
関連する問題