把復選框的值作為參數(shù)提交,作為循環(huán)的次數(shù)
創(chuàng)新互聯(lián)是專業(yè)的白城網(wǎng)站建設公司,白城接單;提供成都網(wǎng)站制作、成都網(wǎng)站建設,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行白城網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
$s1 = $_POST['s1'];//獲取樣品數(shù)量
for($i = 1; $i=$s1; $i++){
$tmp = $_POST['smp'.$i]; //這里是對應循環(huán)中的文本框name屬性
$sql = "insert into 表名(字段....) values('樣品名',數(shù)量)";
mysql_query($sql,$conn);
}
這樣寫,能看明白么?
你這種方式數(shù)據(jù)入庫的話,1000w條數(shù)據(jù),要連接1000w次數(shù)據(jù)庫的,性能肯定是差的,因為建立一次數(shù)據(jù)庫連接是開銷很大的操作
數(shù)據(jù)庫的插入是支持多條的啊
insert into 表(字段) values (值),(值2),(值3)
這樣就可以連接一次數(shù)據(jù)庫,插入多條數(shù)據(jù)了,可以把1000w條數(shù)據(jù)分幾組,這樣連接數(shù)據(jù)庫的次數(shù)會大大減少,性能自然就好了
建議樓主把SQL語句顯示出來,自然就明白問題在哪里了,我試著簡單說一下,假設你的USER數(shù)據(jù)表有三個字段(name、age、sex),_POST提交數(shù)據(jù)也是這三個字段的,假設POST的值分別是abc、18、男,那么帖子的PHP會執(zhí)行下面的三個SQL語句:
INSERT INTO USER(name) VALUES(abc)
INSERT INTO USER(age) VALUES(18)
INSERT INTO USER(sex) VALUES(男)
現(xiàn)在明白了吧,一、三兩句會語法錯誤,英文沒有在文本字段添加引號,第二句即使執(zhí)行成功插入的記錄只有年齡,姓名、性別為空,如果數(shù)據(jù)庫有限制字段有效性,那么第二句插入也會失敗,數(shù)據(jù)庫需要的語句是:
INSERT INTO USER(name,age,sex) VALUES('abc',18,'男')
如果理解了,自然會下面這樣寫PHP語句:
$sql=END
INSERT INTO USER(name,age,sex)
VALUES('{$_POST['name']}',{$_POST['age']},'{$_POST['sex']}')
END;
$data=array(); //創(chuàng)建臨時變量用以存儲數(shù)據(jù)
$length=count($你的array名['cwidth']); //數(shù)你有多少行數(shù)據(jù)
for($i=0; $i=$length; $i++){ //循環(huán)
$data[$i]['cwidth']=$你的array名['cwidth'];
$data[$i]['cheight']=$你的array名['cheight'];
}
出來的數(shù)據(jù)就像是這樣:
array(2){
[0]=array(2){
['cwidth']=string(5) "593px"
['cheight']=string(5) "203px"
}
[1]=array(2){
['cwidth']=string(5) "598px"
['cheight']=string(5) "111px"
}
}
然后再用$db-add($data);插入數(shù)據(jù)
利用PHP對數(shù)組賦值時下標變量會自動遞增的特點,可以很方便用循環(huán)將數(shù)據(jù)存入一個數(shù)組。例如:$arr[] = 'a'; 這條語句會將字符a存入數(shù)組變量$arr中,如果$arr不存在則會新建一個;若已存在,則將$arr數(shù)組的下標變量遞增1后存入字符。也就是說,如果已有$arr[0]='a', 那么執(zhí)行 $arr[] = 'b'; 后,數(shù)組其實是進行了$arr[1] = 'b' 的操作。