2012-05-28 18 views
1

嗯,我發現了一些完美的作品,但它看起來很難看 是否有可能在一個查詢中做到這一點?MySQL鏈接2 ids其中之一是auto_increment

$query = "INSERT INTO page(page_name, page_weight) 
       VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')"; 
    $result = mysql_query($query); 

    $query2 = "SELECT page_id FROM page WHERE page_id = (SELECT MAX(page_id) FROM page)"; 
    $result2 = mysql_query($query2); 
    while($row = mysql_fetch_assoc($result2)) 
    { 
     $query3 = "INSERT INTO content(page_id, content_type) 
        VALUES('".$row['page_id']."', '".mysql_real_escape_string($_POST['type'])."')"; 
     $result3 = mysql_query($query3); 
    } 

來自頁面的page_id是自動遞增的,但page_id來自內容不是,是否有可能以任何方式鏈接它們?

編輯:

感謝PLB現在我已經得到了這個,而不是現在

$query = "INSERT INTO page(page_name, page_weight) 
       VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')"; 
    $result = mysql_query($query); 

    $query3 = "INSERT INTO content(page_id, content_type) 
       VALUES('".mysql_insert_id()."', '".mysql_real_escape_string($_POST['type'])."')"; 
    $result3 = mysql_query($query3); 

是否有可能做的雖然1個查詢?

+0

'mysql_insert_id();'返回最後插入的值。 – Leri

+0

是的,你可以鏈接它們,你有沒有定義你的表格之間的關係? – jugnu

+0

我會將其作爲解決方案發布。 – Leri

回答

0

mysql_insert_id();返回上次插入的ID。使用它可以刪除選擇查詢是這樣的:

$query = "INSERT INTO page(page_name, page_weight) 
       VALUES('".mysql_real_escape_string($_POST['name'])."', '".mysql_real_escape_string($_POST['weight'])."')"; 
    $result = mysql_query($query); 

     $query3 = "INSERT INTO content(page_id, content_type) 
        VALUES('".mysql_insert_id()."', '".mysql_real_escape_string($_POST['type'])."')"; 
     $result3 = mysql_query($query3); 

但我建議停止使用mysql_*功能,並嘗試mysqli_*PDO

+0

這有幫助,但有可能只提出一個查詢呢?就像在一個插入中選擇2個表一樣。或者這看起來不錯?而對於msqli的東西。這是一個學校項目,我們的老師不想開始使用mysqli。 –

+0

@SinanSamet MySql不支持在單個[INSERT語句]中插入多表插入(http://dev.mysql.com/doc/refman/5.1/en/insert.html) – Leri

+0

好吧,非常感謝!而@ jugnu我會看看這個關係,我認爲這會更實用,謝謝! –