0

登録フォームを作成し、application.php送信すると処理され、コンテンツが保存され、最近挿入された行の主キーと等しい値を持つメッセージと呼ばれるパラメーターを使用submit.phpしてリダイレクトしたいthanks.php..たとえば、 100 人目の応募者をページに戻し、

www.mydomain.com/thanks.php?message=100

ここで、100 は主キー (AI) です。

言い換えれば、テーブルの主キーをユーザーの参照IDとして出力したい..

header("location: thanks.php?message=".$id);

header("location: thanks.php?message=".$_POST['id']);

どちらも私にはうまくいきません。

親切に私を助けてください!

編集:

require("admin/sources/connection.php");

$id = mysql_insert_id();

// Other variables are declared here

$sql = "my_INSERT_query_goes_here";

$result = $conn->query($sql);

if($result) {

    header("location: thanks.php?message=".$id);
}

これは私のsubmit.phpコードです

4

2 に答える 2

1

間違った実行順序 - 簡単な修正

最初に $id を割り当ててから、クエリを実行しています。

それらをひねって機能させます。

自動インクリメントを使用していませんか?

コメントのクエリで、入力したいIDを手動で渡すことがわかりました。mysql_insert_id()「id」と呼んだSQL列ではなく、自動インクリメントを設定した列が返されることに気づきましたか? これはテーブル内の 1 つの行であり、手動で入力しなくても自動的に増加する数値を取得します。

于 2013-06-07T17:53:54.317 に答える
0

mysql_カップルの問題...メソッドを混在させているようmysqliで、間違った順序で実行しているようです。

データベース テーブルが自動インクリメントの場合、クエリで ID を渡す必要はありません。クエリで id を呼び出し$id = mysql_insert_id();て使用することにより、次の自動インクリメント ID を使用する ID として 0 を渡します。

insert_idafterを取得する$conn->query($sql);と、使用された挿入 ID が返されます。

いくつかの変数をエコーし​​て、mysql_insert_id();前後の値を確認します。

ただし、 を実行している場合は、標準関数$conn->query()を使用していません。mysql_

これを試して:

require "admin/sources/connection.php";

// Other variables are declared here

$sql = "my_INSERT_query_goes_here";

$result = $conn->query($sql);

if($result) {
    $id = $conn->insert_id;
    header("location: thanks.php?message=".$id);
}
于 2013-06-07T18:05:06.823 に答える