2012-03-03 62 views
-1

我有公司名稱的數組插入多個MySQL記錄,我插入每個公司名稱作爲單獨record.below是代碼使用陣列

<input type="text" name="company_name[]"> 

$company_name = $_POST['company_name']; 

if($company_name) 
{ 
    foreach($company_name as $company) 
    { 
    $mycompany[] = $company; 
    } 
} 

$val="('".implode("'), ('",$mycompany)."')"; 
$sql = "INSERT INTO `table` 
(`company_name`) VALUES ".$val.""; 

上面的查詢看起來像這樣,它成功地插入2個記錄在表。

INSERT INTO `table` (`company_name`) VALUES ('DELL'), ('IBM') 

現在的問題是,每COMPANY_NAME有一個company_code,我想每個記錄插入和有第三值可以假設order_num這也是我想插入但order_num應該在所有記錄相同,我需要以下

INSERT INTO `table` (`order_num`,`company_name`,`company_code`) VALUES ('123','DELL','axc89'), ('123','IBM','bxc90') 
+0

公司代碼從哪裏來? – 2012-03-03 07:43:32

+0

以及爲什麼你需要公司代碼和名稱?不能只是代碼? – 2012-03-03 07:45:32

+0

@ Col.Shrapnel我編輯我的代碼plz檢查它,我做一個非常複雜的在線訂單,因此我需要company_code和order_num – Arif 2012-03-03 07:48:34

回答

1

好吧,你最後努力生產出可以理解的

1)本該代碼是絕對沒用

$company_name = $_POST['company_name']; 

if($company_name) 
{ 
    foreach($company_name as $company) 
    { 
    $mycompany[] = $company; 
    } 
} 

爲$ myCompany的是一個確切的$ COMPANY_NAME

重複2)爲了得到你的「非常複雜」的查詢

foreach($_POST['company_name'] as $key => $value) 
{ 
    $name = mysql_real_escape_string($value); 
    $code = mysql_real_escape_string($_POST['company_code'][$key]); 
    $mycompany[] = "(123,'$name','$code')"; 
} 
$sql = "INSERT INTO `table` (order_num,company_name,company_code) VALUES "; 
$sql .= implode(",",$mycompany); 
+0

company_code不起作用 – Arif 2012-03-03 08:31:06

+0

不是我的問題。「獲取公司名稱相同的代碼」 - 所以我做了。 – 2012-03-03 08:32:26

+0

$ company_name = $ _POST ['company_name']; $ company_code = $ _POST ['company_code']; 是的確定其相同,但我不知道它不工作 – Arif 2012-03-03 08:35:23

0
INSERT INTO `table` (`order_num`,`company_name`,`company_code`) VALUES ('123','DELL','axc89'); 
INSERT INTO `table` (`order_num`,`company_name`,`company_code`) VALUES ('123','IBM','bxc90'); 

查詢可以使用數組

$arrray_to_be_inserted=array 
(
    [0]=>array('123','DELL','axc89'), 
    [1]=>array('123','IBM','bxc90') 
); 
+0

我知道查詢但我想通過php代碼來處理,就像我爲1條記錄做的那樣,現在我需要它來插入3條記錄 – Arif 2012-03-03 07:50:17

0

不是傳遞價值在的foreach一個新的變量,嘗試訪問爲$鍵和$值,試試這個,看看它是否能幫助你

<?php 

$company_name = array("DEL","IBM"); 
$company_code = array("1","2"); 
$order_num = array("4","5"); 

if($company_name) 
{ 
foreach($company_name as $key => $value) 
{ 
    $mycompany[] = $value; 
    $mycompanycode[] = $company_code[$key]; 
    $myordernum[] = $order_num[$key]; 
} 
} 

?>

只要確保名字和他們的值相互對應。

+0

解釋1 down的原因 – 2012-03-03 07:55:40

+0

no問題我投1了bcuz我喜歡的方法 – Arif 2012-03-03 07:59:13