1

ダイナミック テキスト ボックスの値を同時に別のテーブルに保存する必要があります。誰かが私にこれを手伝ってもらえますか? 埋める必要がある4つのテーブルがあります。これは私のテーブルとそのフィールドです:

テーブル1 - desk_id - desk_user - desk_report -desk_action

テーブル2 - print_id - print_brand - print_model - print_report -print_action

table3 - tel_id - tel_local - tel_user - tel_report -tel_action

表4 - remarks_id -remarks

私のPHPコード:

   <?php

$con = mysql_connect ("localhost","root","nasi") or die
('cannot connect to database error: '.mysql_error());


if (isset($_POST['desk_user']) &&
isset($_POST['desk_report']) &&
isset($_POST['desk_action']) &&
isset($_POST['print_brand']) &&
isset($_POST['print_model']) &&
isset($_POST['print_report']) &&
isset($_POST['print_action']) &&
isset($_POST['tel_local']) &&
isset($_POST['tel_user']) &&
isset($_POST['tel_report']) &&
isset($_POST['tel_action']) &&
isset($_POST['remarks']))
{

$desk_user = $_POST['desk_user'];
$desk_report = $_POST['desk_report'];
$desk_action = $_POST['desk_action'];
$print_brand = $_POST['print_brand'];
$print_model = $_POST['print_model'];
$print_report = $_POST['print_report'];
$print_action = $_POST['print_action'];
$tel_local = $_POST['tel_local'];
$tel_user = $_POST['tel_user'];
$tel_report = $_POST['tel_report'];
$tel_action = $_POST['tel_action'];
$remarks = $_POST['remarks'];

if (!empty($desk_user)&& !empty($desk_report)&& !empty($desk_action) && !empty($print_brand) && !empty($print_model) && !empty($print_report) && !empty($print_action) && !empty($tel_local) && !empty($tel_user) && !empty($tel_report) && !empty($tel_action) && !empty($remarks)) {

mysql_select_db("csr", $con);
 $queries = array(); 
for($i=0; $i<count($desk_user || $print_brand || $tel_local || $remarks); $i++) 
{ 
    $queries [] = "('" .$desk_user [$i ] . "', '" .$desk_report [$i ] . "', '" .$desk_action [$i ] . "')" ;

    $queries1 [] = "( '" .$print_brand [$i ] . "', '" .$print_model [$i ] . "', '" .$print_report [$i ] . "', '" .$print_action [$i ] . "')" ;

    $queries2 [] = "('" .$tel_local [$i ] . "', '" .$tel_user [$i ] . "', '" .$tel_report [$i ] . "', '" .$tel_action [$i ] . "')" ;

    $queries3 [] = "('" .$remarks [$i ] . "')" ;
} 

if(count($queries) == 0) 
{ 
    # Nothing passed 
    # exit 
} 

$query = "insert into desktoplaptop (desk_user, desk_report, desk_action tel_local) values " . implode(", ", $queries) ; 

$query1 = "insert into printer (print_brand, print_model, print_report, print_action) values " . implode(", ", $queries1) ; 

$query2 = "insert into tel (tel_user, tel_report, tel_action) values " . implode(", ", $queries2) ;  

$query3 = "insert into remarks (remarks) values " . implode(", ", $queries3) ;  

if ($sql_run = mysql_query($query) || $sql_run = mysql_query($query1) || $sql_run = mysql_query($query2) || $sql_run = mysql_query($query3)) {
                            echo 'ok.'; 
                                }
                        else {
                                    echo '*Sorry, we couldn\'t register you at this time. Try again later.';

                                    }

}

}

?>
4

2 に答える 2

1

4 つのテーブルがある場合は、テーブルごとに一意の INSERT ステートメントが必要です。あなたが提供したコードでは、1 つのテーブルに名前を付けるだけです: desktoplaptop

上記のリストで提案されているように、実際に 4 つの一意のテーブルがある場合は、各テーブルのスキーマを参照する一意の INSERT ステートメントを記述する必要があります。

例えば:

$queries = array();
if(!empty($desk_user)) {
    $queries[] = "INSERT into desktop (desk_user, desk_report, desk_action) VALUES ('" . $desk_user . "', '" .$desk_report . "', '" . $desk_action . "')'";
}

他の 3 つのテーブルについて繰り返します

foreach($queries as $query) {
    if ($sql_run = mysql_query($query)) {
       echo 'ok.'; 
    } else {
       echo '*Sorry, we couldn\'t register you at this time. Try again later.';
    }
}

Web フォームから入力を取得している場合は、インジェクションを防ぐために $_POST 変数ごとにmysql_escape_string()も実行する必要があることに注意してください。さらに、count() 関数を間違って使用しているようです。配列が必要なときにブール式を渡しています。全体として、コードがどのように動作するかをもう一度確認することをお勧めします。

于 2012-11-20T02:25:17.317 に答える
0

4つINSERTをループしますか?

$query[0] = "INSERT INTO TABLE1 (...) VALUES (...)";
$query[1] = "INSERT INTO TABLE2 (...) VALUES (...)";
//etc...

foreach ($query as $x)
  {
      if ($sql_run = mysql_query($x)) {
         echo 'ok.'; 
      } else {
         echo '*Sorry, we couldn\'t register you at this time. Try again later.';
      }
  }
于 2012-11-20T02:08:58.730 に答える