2011-11-22 113 views
0

形式:如何從數組中收集數據?

<input type="text" name="sample[]" id="sample1"/> 
<input type="text" name="sample[]" id="sample2"/> 
<input type="text" name="sample[]" id="sample3"/> 
.... 

如何從形式收集數據,然後把每個值到mysql?

+3

我想你想要一個完整的PHP教程。這個問題太廣泛了。 – Joe

+0

你爲什麼要打電話給那些使用相同名字的人?你應該讓它們變得不同,並用'$ _POST ['YOUNAMEHERE'];'來訪問它們。 MySQL非常簡單,你應該可以自己搜索這個。 – OptimusCrime

+0

我使用樣本[],因爲表單有很多字段(sample3,sample4等) –

回答

1

我認爲你在尋找這樣的事情,讓你開始:

$sample = is_array($_POST['sample']) ? $_POST['sample'] : array(); 

if(count($sample) > 0) 
{ 
    $sample = array_map('mysql_real_escape_string', $sample); 

    $sql = 'INSERT INTO table (something) 
       VALUES ("' . implode('"), ("', $sample) . ' ")'; 
} 
+1

謝謝!是工作! –

0
$sample_array = $_POST['sample']; 
foreach ($sample_array as $sample) { 
    //do what you want with it 
} 
+2

不能保證'$ _POST ['sample']'是一個數組。 – nickb

-1

一個簡單的方法是做到以下幾點:

$sample = mysql_real_escape_string(stripslashes($_POST['sample'])); 

foreach($sample as $value) { 
    mysql_query("INSERT INTO table (foo) VALUE ($value)"); 
} 

的語法可能會稍有關閉,但這是它的一般笑話。

+1

-1不能保證'$ _POST ['sample']'是一個數組,'$ value'沒有被轉義,所以這很容易進行SQL注入,並且對於1000個條目,這將執行1000個查詢,無論有多少條目傳遞給腳本,都可以將其壓縮爲一個查詢時效率低下。 – nickb

+0

正如問題的HTML中所述,$ _POST ['sample']是一個數組。顯然你會轉義POST變量,這是常見的做法。爲什麼會有1000個表單域? – beaudierman