我想遍历包含$ i变量的数组值,
我的数组代码看起来像这样,
foreach($fields_names as $k => $v) {
$handle_data[] ='$rowdata[$i][$fields_names[\''.$v.'\']]';
}
for($i=0;$i<$number_rows_excel;$i++){
$sql.= "('".implode("','", array_values($handle_data))."'),". "<br/>";
}
当我回复$ sql时,我会这样,
INSERT INTO eximport (`S.No`, `Patent#`, `Title`) VALUES ('$rowdata[$i][$fields_names['S.No']]','$rowdata[$i][$fields_names['Patent#']]','$rowdata[$i][$fields_names['Title']]')
它应该像这样显示
INSERT INTO eximport (`S.No`, `Patent#`, `Title`) VALUES ('$rowdata[0][$fields_names['S.No']]','$rowdata[0][$fields_names['Patent#']]','$rowdata[0][$fields_names['Title']]')
请给出一些建议,我如何使用变量$ i循环遍历数组值
感谢
答案 0 :(得分:1)
我使用了这段代码,它帮助我插入行,为插入的每个值附加',' foreach($ val_ary as $ new_data_string){ $ newArray [] = implode(“','”,$ new_data_string); }
//Inserting data into the table
for($tr=0;$tr< $data->sheets[0]['numRows']-2;$tr++)
{
$sql ="INSERT INTO eximport($fieldnames)values('$newArray[$tr]')";
mysql_query($sql) or die("Error in Query: " . mysql_error());
//$p1 = $db->insert_id;
}
答案 1 :(得分:0)
试试这个
$i=0;
foreach($fields_names as $k => $v) {
$handle_data[] ='$rowdata['.$i.'][$fields_names[\''.$v.'\']]'; $i++;
}
希望这会对你有所帮助。
答案 2 :(得分:0)
我假设您不希望在查询中写入$rowdata[]
部分,但是该数组条目的实际值是什么?
所以,你应该简单地嵌套你的循环,就像这样。请记住,您正在循环每个Field,这意味着,您不需要对数据进行任何内爆。我假设您的数据集在数组$data
内,而$ field_names只是一个字段列表。:
$data = array(
array("name" => "DataSet1", "value" => 56),
array("name" => "DataSet2", "value" => 5)
);
$field_names = array("name","value");
$sql = "INSERT INTO table (";
$sql .= implode($fields_names,",");
$sql .= ")VALUES";
for($i=0; $i<count($data); $i++){
$sql .= "(";
foreach($fields_names as $k => $v) {
$sql.= "'".$data[$i][$v]."',";
}
//remove trailing ","
$sql = substr($sql,0,-1);
$sql .= "),";
}
//remove trailing ","
$sql = substr($sql,0,-1);
这将产生:
INSERT INTO table (name,value)VALUES('DataSet1','56'),('DataSet2','5')