1

以下のようなリクエストがあります:

$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]')

問題:
入力が複数で、' # ' 文字で分割される場合があり、入力の
最後の行にも ' # ' 文字が含まれている可能性があります

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

各行を分離してデータベースに新しい行として挿入するにはどうすればよいですか?
ありがとう ;)

編集:#入力は 3つ# 異なる モードです#

4

4 に答える 4

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("...");
}
于 2012-07-18T18:38:10.633 に答える
0

最初に「#」で展開し、結果ごとに「、」で展開して新しい行を追加します

于 2012-07-18T18:36:58.387 に答える
0

最初に「#」で展開し、次に「、」で展開する結果の配列をループして、各行に挿入を行います。

于 2012-07-18T18:37:50.063 に答える
0

explode()2回使用する必要があります。最初に複数のレコードを確認し、次にもう一度区切り文字で分割します,

<?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);
}
?> 
于 2012-07-18T18:41:43.400 に答える