-1

auto_incrementing ID を持つ 2 つのテーブルがあります

MAINTENANCE
maintenance_id int(11) NOT NULL AUTO_INCREMENT,
description varchar(50)
PRIMARY KEY (maintenance_id)

私の Maintenance.php ページに、maintenance_id を生成するクエリがあります。

$sql = "insert into maintenancereq (maintenance_id,description)
        values('','description')";

そして、そのmaintenance_idが必要な別のphpページがあります。別のページの別のクエリに対して、maintenance.php ページで生成された ID を見つけるにはどうすればよいですか?

4

3 に答える 3

1

永続的なデータを管理する方法:

  1. セッションを使用$_SESSIONして、次のページに永続的なデータを含めることができます

  2. リンク内の id を使用して次のページにリダイレクトmaintenance.phpできます。リンクは次のようになりhttp://myurl?maintenanceId=1&blah=blahます。

次に、IDを取得します$_GET

if( isset($_GET['maintenanceId']) && is_numeric($_GET['maintenanceId']) ) {
 // do blah blah
}
于 2013-10-20T11:48:05.023 に答える
1

あなたがしなければならないのは、使用することだけです

mysql_insert_id();

あなたのコードで。これは、前のクエリ (通常は INSERT) によって AUTO_INCREMENT 列に対して生成された ID を取得します。

$sql = "insert into maintenancereq (maintenance_id,description)
        values('','description')";

上記のクエリを実行して、mysql_insert_id(); を使用するだけです。この値を URL 文字列に配置して、次のページから値を取得できます。または、それをセッションに入れてから、セッションから取得することもできます。

ここを見てください

于 2013-10-20T11:57:52.557 に答える
0

MySQL はそのLAST_INSERT_ID()ような場合の機能を提供します。

実行する

SELECT LAST_INSERT_ID()

行を挿入した後、結果は自動生成された ID になります。同じ接続を使用する必要があるため、このクエリは挿入直後に実行する必要があることに注意してください。取得した値は、パラメータやセッション変数などを介して別のページに渡す必要があります。ドキュメントに記載されているように、同じ接続が使用されている場合、INSERT別のクライアントによる同じテーブルへの別の接続は問題ありません。

各クライアントは、クライアントが最後に実行したステートメントの最後に挿入された ID を受け取ります。

詳細については、その関数に関する MySQL ドキュメントを参照してください。

于 2013-10-20T11:44:16.193 に答える