2012-03-03 59 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