2

私は学校のマネージャーのスクリプトに取り組んでいます。サブスクリプションのカスタム一意IDを挿入する方法がわかりません...

この関数を使用して、データベースからの完全な情報を表示するときに、一意のサブスクリプションのIDを表示します。

$year = date('Y');
$ID = substr($student->dateNaissance,8,10).$student->id_etudiant."/".$year;

この機能は次の3つで組み合わされています。

  • 生年の最後の2桁(例:1981年1月1日..substr関数を使用してこれのみ-> 81を取得)
  • データベース上のテーブルの行ID(例:50)。
  • そして、購読の年(例:2013)

たとえば、結果として8150/2013

ここで必要なのは、学生データをデータベースに挿入するときに、この一意のIDも挿入することです。

ここでの問題は、行の最後のIDを取得する方法がわからないことです。

ええ、私は学生データを挿入してから、これを使用してid_subscriptionを更新しようとしました:

if(isset(....){ 
...... 
    $mysqli->query("INSERT INTO table (a,b,c, ...etc) VALUES('','',''..etc)"); 
    $year = date('Y'); 
    $mysqli_query("SELECT * FROM table_name"); 
    $studentID = $mysqli_insert_id(); 
    $ID = substr($student->dateNaissance,8,10).$ID."/".$year; 
    $mysqli->query("UPDATE table_name SET id_subscription = $ID"); 
} 

しかし、それは機能していません:\

ちなみに、私のテーブルでは、上に示したカスタマイズされたIDを挿入するauto_increment id+subscription_idを使用しています。

4

2 に答える 2

1

行IDがauto_incrementフィールドであるとすると、次の2つの段階で実行する必要があります。

  1. トランザクションを開始します
  2. idフィールドを除くすべてをDBに挿入します
  3. last_insert_id()を使用して、mysqlで生成されたIDフィールドを取得します
  4. 独自のIDフィールドを作成する
  5. この新しいIDでレコードを更新します
  6. トランザクションをコミットします。
于 2013-02-18T16:44:26.527 に答える
0

データベース構造について: 1. テーブルで自動インクリメントされた主キーを使用し、データ (student_id) を別の列として保存できます (推奨)。

「行の最後のID」を取得する場合: 1. mysql_insert_id() を使用してください..これをチェックしてください

于 2013-02-18T16:47:57.683 に答える