2013-07-28 56 views
1

我的條碼掃描儀,使像這樣的文件:
3月1日/ 2000年12:59:49-07-21-1229749
3月1日/ 2000-12:59 :51-07-0 1 1 0
03/01/2000-12:59:55-07-22-1229749
03/01/2000-12:59:57-07-0 1 1 1創建包含在不同線路上的變量循環

行1個containce的ID我需要21
第2行是位置我需要0 1 1 0
第3行再次ID 22
第4行再次位置0 1 1 1

該文件可能包含100線

讀我喜歡更新數據庫後:
的mysql_query( 「更新零件SET地區= '$ locatie_regel_2' WHERE ID = '$ id_regel_1'」);

到目前爲止,我有我的劇本

$file = file_get_contents('C:\test\BARCODE.TXT'); 
$strip = explode("\n", $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

$regel_1_a = $strip[0]; 
$regel_1_b = explode(':', $regel_1_a); 
$regel_1_c = explode('-', $regel_1_b[2]); 
$id_regel_1 = $regel_1_c[2]; 

//echo $id_regel_1; 

$regel_2_a = $strip[1]; 
$regel_2_b = explode(':', $regel_2_a); 
$regel_2_c = explode('-', $regel_2_b[2]); 
$locatie_regel_2 = $regel_2_c[2]; 

//echo $locatie_regel_2; 

我認爲這可能BIJ循環或東西來處理,但我無法得到它的工作..
歡迎任何幫助

回答

1

file將讓你的文本文件,從那裏數組,你可以閱讀陣列的數據配對,您需要:

<?php 
// load your database information here otherwise the mysql_query will not work. 

$data = file('C:\test\BARCODE.TXT', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 
$total = count($data) - 1; 
for ($i = 0; $i < $total; ++$i) 
{ 
    $parts = explode('-', $data[$i]); 
    $id = $parts[count($parts) - 2]; 

    $i++; 
    $parts = explode('-', $data[$i]); 
    $location = array_pop($parts); 

    mysql_query("UPDATE parts SET locatie = '$location' WHERE id = '$id'"); 
} 

for假設您的數據以id行開始,並且下一行始終爲location,它將以步驟2讀取數據。

-1

的FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);參數應該是file()函數的一部分,而不是爆炸。

$strip = file('C:\test\BARCODE.TXT',FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

這應該創建一個你正在尋找$條的陣列。

for ($i=0;$i<sizeof($strip);$i+=2) { //process strip[i]

// process strip[i+1] }

+0

Sheesh。爲什麼這會被投票選出? –

0

我希望這幫助:

$a = array(); 
$file = file_get_contents('C:\test\BARCODE.TXT'); 
foreach ($file as $content) { 
    $a[] = array_filter(array_map("trim", explode("\n", $content))); 
} 

for($i=0;$i<$a.count();$i++){ 
$a[i][0] = $strip[0]; 
$a[i][1] = explode(':', $a[i][0]); 
$a[i][2] = explode('-', $a[i][1][2]); 
$a[i][3] = $a[i][2][2]; 

    if(i%2!=0) 
     mysql_query("UPDATE parts SET locatie = '$a[i][3]' WHERE id = '$a[i-1][3]'"); 
}