2012-07-03 65 views
0

基本上我想添加以下信息到單個數據庫字段,(txt-via-hn文本框是房屋號碼,txt-via是地址詳細信息)PHP - 將多個文本框值的文本值添加到數據庫

$vias =   $_POST['txt-via-hn2'].' '.$_POST['txt-via2'] 
     .' -> '.$_POST['txt-via-hn3'].' '.$_POST['txt-via3'] 
     .' -> '.$_POST['txt-via-hn4'].' '.$_POST['txt-via4'] 
     .' -> '.$_POST['txt-via-hn5'].' '.$_POST['txt-via5'] 
     .' -> '.$_POST['txt-via-hn6'].' '.$_POST['txt-via6'] 
     .' -> '.$_POST['txt-via-hn7'].' '.$_POST['txt-via7'] 
     .' -> '.$_POST['txt-via-hn8'].' '.$_POST['txt-via8'] 
     .' -> '.$_POST['txt-via-hn9'].' '.$_POST['txt-via9'] 
     .' -> '.$_POST['txt-via-hn10'].' '.$_POST['txt-via10']; 

目前,例如,如果我輸入兩個孔以下將被添加到數據庫中的字段:

HOUSENUMBER ADDRESS -> HOUSENUMBER ADDRESS -> -> -> -> -> -> ->

我希望發生的是,如果文本框的值是空的,不包括最後的空白空間。所以,如果我進入只有兩個孔,只有以下將被添加:

HOUSENUMBER ADDRESS -> HOUSENUMBER ADDRESS

這可能嗎?

回答

2

他們都加入到一個數組,運行array_map()array_filter()他們擺脫空元素,那麼implode()他們,就像這樣:

$array = array(); 
foreach(range(2, 10) as $i) { 
    $array[] = $_POST['txt-via-hn' . $i] . ' ' . $_POST['txt-via' . $i]; 
} 
$vias = implode(' -> ', array_filter(array_map('trim', $array))); 

你甚至可以爲您在環空值,和省略調用array_filter(),像這樣:

$array = array(); 
foreach(range(2, 10) as $i) { 
    if(!empty($_POST['txt-via-hn' . $i]) && !empty($_POST['txt-via' . $i])) 
     $array[] = $_POST['txt-via-hn' . $i] . ' ' . $_POST['txt-via' . $i]; 
} 
$vias = implode(' -> ', $array); 

請注意,如果你嘗試,如果沒有定義內$_POST訪問索引兩種方法將產生通知。要解決此問題,請在嘗試從$_POST讀取以確保密鑰已設置之前,請致電isset()

+0

圖例,非常感謝:) – nsilva

0
for($i = 2; $i <= 10; $i++) 
{ 
    if(strlen($_POST['txt-via2'])) 
     $array[] = $_POST['txt-via-hn'.$i] . ' ' . $_POST['txt-via'.$i]; 
} 

$vias = join("->", $array); 
相關問題