0

MySql にデータを挿入しようとしている複数のフォームがあります。各フォームには、その情報に関連付けられた異なるテーブルがあります。insert.php ファイルを使用してデータを挿入しています。最初のフォームはうまく機能します。ただし、初期ファイルに他の変数を追加すると、エラーが発生します。これは私の挿入ファイルです:

<?php # NAME OF PROGRAM GOES HERE

require_once 'config.php'; 

// Get values from form
$Fname        = $_POST['first_name'];
$email        = $_POST['email']; 

// Insert data into mysql
$sql="INSERT INTO entry (first_name, email)
VALUES ('$Fname', '$email')";
$result = mysql_query($sql);

// if successfully insert data into database, displays message "Successful".
if($result){
echo "Successful Entry";
}
else {
echo "ERROR";
}
mysql_close();
?> 

これは最初の形式です:

<form action="insert.php" method="post" name="admin" onSubmit="return validateForm()">
<p>Please enter First Name <input type="text" name="first_name" required="required"/>
<p>Please enter your Email<input type="text" name="email" required="required" ><br />
<input type="submit" name="submit" value="Submit" />
</form>

2 番目の形式は次のとおりです。

<form action="insert.php" method="post" onSubmit="return validateForm()">
<p>Favorite Winery Name <input type="text" name="fav_winery" /> <br />
<p>Favorite White Wine<input type="type" name="fav_white" /> <br />
<p>Favorite Red Wine <input type="type" name="fav_red" /> <br /><br />
<input type="submit" name="submit" value="Submit" />
</form>

2 番目のフォームの情報を、既に作成されている別のテーブルに挿入するにはどうすればよいですか?

4

4 に答える 4

1

これを行うにはいくつかの方法があります。

  1. さまざまなフォームを別のスクリプトに送信します。insert_user.phpしたがって、最初のフォームと 2 番目のフォームのスクリプトを作成できますinsert_winery.php

  2. Ahouri Ghotbi の回答のように、非表示の入力フィールドを使用してフォームを区別します。

  3. submitそれらを区別するには、フィールドの値を使用します。したがって、スクリプトで実行できますif ($_POST['submit'] == 'user') ...

  4. action 属性で URL パラメータを使用します: action="insert.php?form=user"。その後、スクリプトは次のことができますif ($_GET['form'] == 'user') ...

于 2013-09-17T01:37:28.523 に答える
0

アクションのために各フォームに隠し変数を追加してから、次のように if ステートメントを実行することをお勧めしますinsert.php

if($_GET['action'] == 'insertName'){

##insert code and form validation goes here

}elseif($_GET['action'] == 'insertFav'){

##insert code and form validation goes here

}

フォームに非表示の入力を追加し、フォームを区別するために ACTION-NAME を何かに変更します

<input type="hidden" name="action" value="insert*ACTION-NAME*" />
于 2013-09-17T01:08:19.257 に答える
0

2 番目のフォームの情報を、既に作成されている別のテーブルに挿入するにはどうすればよいですか?

テーブル名を持つ各フォームに隠し変数があります...

<input type="hidden" id+"tableName" value="entry" />

PHP スクリプトは、各テーブルが何を期待しているかを理解できるほどスマートである必要があります。INSERT ステートメントの左側に式リストを指定していないかのどちらかです。

INSERT INTO entry VALUES (...)

それ以外の

INSERT INTO entry (col1, col2) VALUES (...)

または、テーブル名に基づいて式リストを設定するかどうかをチェックします。これはメンテナンスの問題です。

if($tableName == "entry")
{
    $columns = "(first_name, email)";
}

次に、挿入クエリで $columns を使用します。

INSERT INTO $tableName $columns VALUES (...)
于 2013-09-17T01:10:33.703 に答える