2013-05-11 74 views
1

我想在插入的值中使用循環。如何在插入的值中使用循環php

例如

$num = count($data); 

for ($c=0; $c < $num; $c++) { 
    echo $data[$c] . "<br />\n"; 

} 
$sql = "INSERT INTO $tbl_name VALUES ( '$data[$c]' )"; 

如果num 5然後,然後列將被創建5.將被插入1行5列。

或 如果num爲8,那麼列將被創建8.其中將被插入具有8列的1行。

VALUES,如何使用環或

由於列數不是固定的。所以如何動態插入列數據,哪一行將被創建一(1)。

請有什麼建議嗎?

+0

for(for循環for(...){if($ data [$ c] == 5){//插入查詢}}。這是你在找什麼? – pregmatch 2013-05-11 12:01:56

+0

我想,在閱讀4-5次他想要查詢動態字段的問題後,不要多次運行相同的查詢。 – OptimusCrime 2013-05-11 12:03:46

+0

你能解釋一下「動態」列嗎?同一張表如何具有不同的列數? – Tivie 2013-05-11 12:03:55

回答

2

試試這個

$sql = "INSERT INTO $tbl_name VALUES ("; 
for ($c=0; $c < $num; $c++) { 
    $sql .= "'" . $data[$c] . "',"; 

} 
$sql = substr($sql,0,-1); // removes last comma 
$sql .= ")"; 
+0

非常感謝。你能幫我提高我的聲譽嗎? – 2013-05-12 09:23:45

0

你想這樣的:

foreach ($data as &$piece){ 
    $piece = "('{$piece}')" ; //Or you can specify anything else 
} 

$values = implode(", ", $data) ; 

$sql = "INSERT INTO $tbl_name VALUES {$values} ; "; 
0

首先您需要定義2陣列的字段列表中的兩個查詢

$col5 = array('field1', 'field2', 'field3', 'field4', 'field5'); 
$col8 = array('field1', 'field2', 'field3', 'field4', 'field5', 'field6', 'field7', 'field8'); 

然後

$num = count($data); 

for ($c=0; $c < $num; $c++) { 
    echo $data[$c] . "<br />\n"; 

} 

if ($num == 5) { 
    $fields = explode($col5, ","); 
} else { //assume its 8 if not 5 
    $fields = explode($col8, ","); 
} 

$sql = "INSERT INTO $tbl_name (" . $fields . ") VALUES ('" . explode($data, "','") . "')";