1

データベーステーブルからデータを取得するphpページを作成し、ユーザーがMySQLiコマンドで表示できるようにテーブルに配置しています。

逆の状況にどうアプローチしたらいいのかと思っていました。ユーザーがテキストボックスに情報を入力し、ページの下部にある「保存」というボタンをクリックして、データベースに保存する前にユーザーに「よろしいですか」というメッセージを表示できるようにしたいと思います。ユーザーが「はい」をクリックすると、新しいエントリがデータベースに挿入されます。

ラベルとテキストボックスを作成するための次のコードがあります。

<FORM>
ID: <input type="text" name="id"><br />
NM: <input type="text" name="nm"><br />
Company: <input type="text" name="company"><br />
Address: <input type="text" name="address"><br />
City: <input type="text" name="city"><br />
Zip: <input type="text" name="zip"><br />
State: <input type="text" name="state"><br />
Phone: <input type="text" name="phone"><br />
Website: <input type="text" name="web_site"><br />
</FORM>

ただし、「保存」ボタンに関しては、ボタンを適切に実装できますが、データベースに入力された情報を保存するにはどうすればよいですか?

私の最初の思考プロセスは、ユーザーが入力した値を見つけることでした。私は一般的にPHPとWEBdevに不慣れですが、テキストボックス内のテキストの値を取得する方法を知る必要があります。PHP Postメソッドを介してすべての値をふるいにかける必要がありますか?

ユーザーが入力したい情報を入手したら、MySQLiに挿入機能があるのではないかと考えていました。これはhttp://php.net/manual/en/mysqli.insert-id.phpにあります。次に、これは簡単な挿入であり、ユーザーがプロンプトで「yes」を入力した後、データベースにあります。

私は正しい考えを念頭に置いていますか?これを行うためのより効率的な方法はありますか?

どんな助けでも大歓迎です。私は自分のシナリオに関連するものと同様の問題と解決策を探しましたが、何もありませんでした。=(

ありがとう!

編集:

アクションフォームが情報を送信するagentprocess.phpにあるコードは次のとおりです。

<?php
$agent_nm = $_POST['nm']; // gather all the variables
$company = $_POST['company'];
$address = $_POST['address'];
$city = $_POST['city'];
$zip = $_POST['zip'];
$state = $_POST['state'];
$phone = $_POST['phone'];
$web_site = $_POST['web_site'];
$batch_id = $_POST['batch_id']; // added batch id
//connect
$conn = new mysqli('local', 'admin', 'pass', 'DB');
    if(mysqli_connect_errno()) {
        exit('Connect failed: '. mysqli_connect_error());
    }
//generate the query (doesn't add id because id is autoincremented)
$query = "INSERT INTO t_agent VALUES (NULL, " . $agent_nm . ", " . $company . ", " . $address . ", " . $city . ", " . $zip . ", " . $state . ", " . $phone . ", " . $web_site . ", " . $batch_id . ")";

//insert and close.
mysqli_query($conn, $query);
mysqli_close($conn);

ここのコードにもかかわらず、私はテーブルを照会しましたが、新しいエントリはありません。ここで何かが足りませんか?

前もって感謝します!

4

4 に答える 4

1

非常に簡単な例です。入力のラベルにラベルタグを追加し、フォーム内に配置します。

<form method="post" action="process.php" id="myForm" name="myForm" >
<label for="ID">ID</label>:  <input type="text" name="ID" /><br />
<label for="nm">NM:</label> <input type="text" name="nm"><br />
<label for="company">Company:</label> <input type="text" name="company"><br />
<label for="address">Address:</label> <input type="text" name="address"><br />
<label for="city">City</label>: <input type="text" name="city"><br />
<label for="zip">Zip</label>: <input type="text" name="zip"><br />
<label for="state">State</label>: <input type="text" name="state"><br />
<label for="phone">Phone</label>: <input type="text" name="phone"><br />
<label for="web_site">Website</label>: <input type="text" name="web_site"><br />
<input type="submit" name="submit" />// this is your submit button
</form>

process.phpページ

//get your inputs from the form
$ID = $_POST['ID']; 
//do the same for each of the text inputs

次に、説明したとおりにmysqliを使用してデータベースに値を挿入できます。質問のmysqli部分についてサポートが必要な場合は、コメントしてください。元の質問にリンクが投稿されているため、ここには含めませんでした。 。

于 2012-09-26T21:17:18.077 に答える
1

を使用する必要がありますforms。はい、要素の属性を使用して、DBに保存する値を(たとえば)nameふるいにかけます。これがです。たとえば、mysqlの代わりにMYSQLiステートメントを使用します。$_POST$_POST['company']

于 2012-09-26T21:02:02.940 に答える
1

これは、Web開発の初心者にとっては単純ですが、少し複雑な作業です。

だから私はあなたがする必要があることの完全な例をあなたに与えるつもりです...

[保存]ボタンのチェックを行うには、javascriptの確認ダイアログを使用し、確認された場合はjavascriptを使用してフォームを送信するのが最も速い方法です。

Mysqlの挿入部分は簡単です。フォームを介して送信したデータが$_REQUSETにあるかどうかを確認し(これは$_POSTまたは$_GETの両方をキャッチするため、どちらよりもうまく機能します)、dbに接続して挿入を行う必要があります。クエリ...

この例では、すべてが説明されています。

http://pastebin.com/thNmsXvn

ただし、テンプレートなしでphp、javascript、htmlを1つのファイルで実行するのはひどく、長期的には問題が発生するだけなので、Smartyなどのテンプレートエンジンを使用してください。

私がペーストビンを付けた例では非常に明確だったと思いますが、ご不明な点がございましたらお気軽にお問い合わせください...

追加するだけで、MySQLでIDを管理するための最良のソリューションは自動インクリメントオプションであるため、HTMLフォームからIDを削除しました。これは、テーブルを作成して特定のフィールドに設定するときに構成します。ほとんどの場合、これはIDであり、整数である必要があります。

于 2012-09-26T21:53:16.253 に答える
1

PHP/MySQLにはPDO関数を使用する必要があります

idフィールドは自動インクリメントする必要があります

<?php
$host= "xxx";
$username="xxx";
$password="xxx";
$database="xxx ";

// Gets data from URL parameters

$name = $_POST['nm'];
//Repeate for all other parameters

// Opens a connection to a MySQL server
try {

// DBH means "DB Handle"

// MySQL with PDO_MYSQL
 $DBH = new PDO("mysql:host=$host;dbname=$database", $username, $password);

}
catch(PDOException $e) {
    echo $e->getMessage();
}
// STH means "Statement Handle"
$STH = $DBH->prepare("INSERT INTO mytable ( id,    nm,company,address,city,zip,state,phone,web_site ) values ( NULL,:nm,:company,:address,:city,:zip,:state,:phone,:web_site)");
$STH->bindParam(':name', $name);
//Repeate for all other parameters
$STH->execute();

//# close the connection
$DBH = null;
?>
于 2012-09-27T00:39:55.133 に答える