2012-03-29 14 views
1

私は始める前にいくつかアドバイスが必要です。私のPHPスキルは3ヶ月しかないので、勉強しています。PHP注文キャプチャポータル

情報をデータベースにキャプチャする注文キャプチャ画面を作成する必要があります。

オーダーフォームには、最大150行までキャプチャする必要があります。

私はフォームを簡単に作成できますが、これをデータベースに書き込む最良の方法はなんですか?

提出に、私は、POSTメソッドを使用してフォームの値を取得し、使用してMySQLに書き込むことができます。

INSERT INTO example 
    (example_id, name, value, other_value) 
VALUES 
    (100, 'Name 1', 'Value 1', 'Other 1'), 
    (101, 'Name 2', 'Value 2', 'Other 2'), 
    (102, 'Name 3', 'Value 3', 'Other 3'), 
    (103, 'Name 4', 'Value 4', 'Other 4'); 

これを行うのがより流線型の方法があるか、私は150のためのコードを繰り返す必要がありますライン?

答えて

1

ユーザビリティの観点からは、フォームのデザインを再検討することをお勧めします。ユーザーが注文フォームの149行を記入し、誤って戻るボタンを押すと、本当に悪い一日を過ごすことになります。おそらく、一度に1行をキャプチャするか、ユーザーがすべてのエントリを含むファイル(スプレッドシート、CSVなど)をアップロードできるようにする必要があります。

フォームのデザインを変更できない場合は、ループ内の行を処理する必要があります。ループはこのような何かを見ることができます:

for ($i = 1; $i <=150; $i++) { 
    $name = $_POST['name' . $i]; 
    $value = $_POST['value1' . $i]; 
    // capture the rest of the field values 
    $query = "INSERT INTO (...) VALUES ($name, $value, ...)"; 
    mysql_query($query); 
} 

代わりに、あなたは一つの大きなクエリに対する各ループの結果を追加し、すべての150行をキャプチャした後、それを実行することができます。簡潔にするため

は、私はあなたが追加する必要があるいくつかの詳細を残している:

    は確かにあなたのユーザーが破損し、データベース
  • はPDOを使用するかを検討しません作るためにあなたの入力をエスケープ
  • mysql_ *以外のものを使用してデータベースの使用を容易にします。
  • 行が空白の場合は、空の値をキャプチャして挿入していないことを確認します。