2016-06-12 1 views
1

htmlフォームから収集したテーブルにデータを挿入するPHPコードがあります。クエリが正常に送信されると、自動的に一意のIDが割り当てられます。IDをテーブルから引き出します。

現在、私は参照を生成していますが、これは重複したエントリを長期間に渡ってしまうため、解決策は貧弱です...一意のIDを取得してechoステートメントに投稿するにはどうすればいいですか?それを取得するクエリ?またはこの1ブロックのコードで実行できますか?タクシーのテーブルについては

if($fnameErr === null) { 
        $ref = rand(1, 1000); 
         $query = "INSERT INTO Taxi(fname, lname, contact, unit, snumber, sname, suburb, dsuburb, dt, ref, status) VALUES('{$fname}','{$lname}','{$contact}','{$unit}','{$snumber}','{$sname}','{$suburb}','{$dsuburb}','{$dt}','{$ref}','{$status}')"; 
         if (mysqli_query($conn, $query)) { 

         $date = date_create($dt); 
         echo "Thank you! Your booking reference number is {$ref} you will be picked up in front of your provided address at " . date_format($date, 'g:ia \o\n l jS F Y') . "."; 

         }else{ 
          echo "<br>Failed<br>"; 
          echo mysqli_error($conn); 
         } 
        } 
        else { 
         echo "<br>Unable to add your booking.<br>"; 
        } 
+1

[mysqli最後の挿入ID](http://stackoverflow.com/questions/19738283/mysqli-last-insert-id)の可能な複製 – Dekel

+0

なぜあなたは自動インクリメントしてテーブル内で一意にしないのですか? –

答えて

2

、あなたはこのテーブルの主キーとして一意のIDを作成する必要があります。

ALTER TABLE `taxi` ADD `id` INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY (`id`); 

あなたはいくつかのエントリを挿入すると、新しいIDを作成する必要はありません。自動的に行われます。

だから、INSERTクエリの後、あなたがして、新しいIDを取得することができます:

mysqli_query($conn,"INSERT INTO Taxi (fname, lname...) VALUES (..."); 

echo "New record has id: " . mysqli_insert_id($conn); 

そして、あなたは最後のエントリのIDを持っています。

関連する問題