MySQL başka bir tabloya bir tablodan son id eklemek nasıl?

4 Cevap php

Ben, bir veritabanında en son öğenin id almak biri bunu artırmak ve başka bir tabloya bu yeni kimliği eklemek istiyorum.

Denedim:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

while ($return = mysql_fetch_assoc($select)) {

   $id = $return['id'];
   $newId = $id++;

}

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

Ama işe yaramadı. Bu nasıl yapılabilir?

4 Cevap

Bu deneyebilirsiniz:

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

if(! $select)
    die("Query Failed");

$return = mysql_fetch_assoc($select);
$id = $return['id'];
$newId = ++ $id; // post increment does not work...use preincrement.
mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");

Bunu yapmamalısınız. Bunun yerine tableName daha sonra kullanmak yeni bir kayıt eklemek mysql_insert_id() to capture the new ID and then insert it into anotherTable. Eğer bunu etrafında başka bir yol olsaydı olabilirdi yarış durumları önlemek Bu şekilde.

Son eklenen kimliği almak için mysql_insert_id () kullanın

Neden bir süre ifadesi kullanıyorsunuz? Sadece en son id istiyorsanız, sadece zaman çıkar ..

$select = mysql_query("SELECT id FROM tableName ORDER BY id DESC");

$return = mysql_fetch_assoc($select);

$id = $return['id'];
$newId = $id + 1;

mysql_query("INSERT INTO anotherTable (someColumn) VALUES ('$newId')");