2012-07-18 39 views
1

我有一些要求象下面這樣:PHP MySQL的檢查,如果要求有「#」字符插入新行

$input = "$POS,1234,5223,A,2719"; 

如果得到請求,像上面,過程中保存到數據庫與下面的代碼:

$input_ex = explode(",", $input); 

$input_ex[0]; 
$input_ex[1]; 
$input_ex[2]; 
$input_ex[3]; 
$input_ex[4]; 

mysql_query("INSERT INTO table_name (cl_1,cl_2,cl_3,cl_4,cl_5) 
values ('$input_ex[0]','$input_ex[1]','$input_ex[2]','$input_ex[3]','$input_ex[4]') 

問題:
我的輸入可以是有時多於一個和分裂多個以 '#' 字符
投入210最後一行也許有「#」字符太

$input = "$POS,1234,5223,A,2719# 
$POX,752,4342,N,SXD# 
$POZ,122,6242,B,XFB#"; 

如何我可以分開的每一行並將其插入數據庫作爲新行?
感謝)

編輯: 輸入是3個不同的模式,第一是沒有任何#符號的一列,第二是有更多的行與最後一排,3TH更多行端#而不#符號在最後一行的末尾

回答

2
foreach (explode('#', $input) as $record) { 
    $record = trim($record); 

    if ($record == '') 
    continue; 

    $input_ex = explode(',', $record); 

    $input_ex[0]; 
    $input_ex[1]; 
    $input_ex[2]; 
    $input_ex[3]; 
    $input_ex[4]; 

    // Same MySQL query as you already have 
    mysql_query("..."); 
} 
+0

輸入是3種不同的模式,1st是沒有任何'#'符號的一行,第二行是在最後一行有更多行,最後一行是結尾'#',第三行沒有'#'在最後一行的末尾標記 – Root125 2012-07-18 18:39:53

+0

而且這段代碼應該處理它。 – 2012-07-18 18:41:20

+0

謝謝,我會測試它:) – Root125 2012-07-18 18:43:40

0

首先由「#」爆炸,併爲每個結果由爆炸「」並通過結果的陣列添加新行

+0

可以舉個例子嗎?輸入是3種不同的模式,1st是沒有任何'#'符號的一行,2nd是在最後一行有多個帶有末尾'#'的行,多於沒有'#'的末尾有三行# – Root125 2012-07-18 18:37:47

0

上的「#也就是爆炸」第一,然後循環爆炸上「,」如你所做的那樣併爲每一行插入一個插入。

0

您需要兩次使用explode()。首先檢查多個記錄,然後再一次在分隔符上分割,

<?php 
$input = "POS,1234,5223,A,2719# POX,752,4342,N,SXD# POZ,122,6242,B,XFB#"; 

foreach(explode('#', $input) as $records){ 
    $record = explode(',', $records); 
    print_r($record); 
} 
?> 
相關問題