Tablonun son kayıt almak

4 Cevap php

I have a form that lets users create new records,
In the field that is the id that auto-increments i want the user to see the record number that this record is by somehow showing latest value+1 in the fields value.

Ben böyle bir şey düşünüyordum:

<input type="text"  value="<?php echo $myQuery['recordId'].length+1"/> 

Ama çalışmıyor.

Yine, bu <input> varsayılan değerini almak için sadece

Bunun yerine son id bakmak zorunda, Ve bu form yalnızca bir yönetici tarafından kullanılır edilir.

4 Cevap

Bunu seçerek bir artı yüksek id bulabilirsiniz:

SELECT MAX(id)+1 FROM table

David Ama dediğin gibi, sen 2 kişi yaklaşık aynı zamanda sayfa yük olabilir, çünkü bu, kullanılan id olacak garanti değil.

Bu bağlamda ilgili son id almak için kullanın mysql_insert_id

Sizin durumunuzda bunu saymak olacağını garanti edemez önce db boş bir kayıt eklemek gerekecek. Kullanıcıların ilerlemek yoksa boş kayıtları bir sürü terk edecek, ancak Temizleme formu daha fazla bir saat önce bir başlık değer veya böyle bir şey yok oluşturulan kayıt silme tarafından yüklenen her zaman yapabilirsiniz.

kesinlikle bir tamsayı olması gerekiyorsa, her zaman, tek bir auto_increment sütun ile özel bir tablo oluşturmak ona takın, (last_insert_id olsun) ve kullanabilirsiniz. Bu tür kehanet içinde dizileri taklit edilir. alışmak Yüklü kimlikleri atık gidecek, ancak çok kullanıcılı senaryoları ile ilgili başka sorunlar oluşmaz. Mysql belgelerine kopyalanan Aşağıdaki kodu information functions. Bu kodun sözleri okumak için oraya gitmek.

CREATE TABLE sequence (id INT NOT NULL);
INSERT INTO sequence VALUES (0);
UPDATE sequence SET id=LAST_INSERT_ID(id+1);
SELECT LAST_INSERT_ID();

Şimdi geri benim kendi ifadesiyle. Eğer kullanabileceğiniz bir tamsayı olmak zorunda yoksa guid. Php bir uniqid işlevi vardır, ve mysql bir uuid fonksiyonu var. teori herkes bağımsız her zaman GUID'lerine üreten tutar bile söylüyor, her guid benzersiz olacaktır.

Yani bu bunu yapmanın bir yolu:

<?php
    $query = "select uuid()";
    $result = mysql_query($query);
    $row = mysql_fetch_row($result);
    $uuid = $row[0];
?>
<input type="text" value="<?php echo $uuid; ?>"/>

This blog post bunu nasıl açıklar, ama aslında formun ibrazı üzerine doğru değer olacağı garantisi yoktur.