Başlıkta bahsettiğim sorunun çözümünü bulana kadar epeyce uğraştım. Mutlaka birilerinin işine yarayacaktır diye buraya da yazıyorum. Başlığın ne olacağını seçerken de zorlandım. "serial alanın bir sonraki numarasını bulmak", "auto incremenet alanın değerini bulmak" vs. tarifi biraz zor ama bu işlerle uğraşanlar kastımı hemencecik anlamıştır.
PHP ile formdan verileri alan bir sayfa yazdınız. Bu sayfada yeni oluşacak kaydın numarasını görüntülemek istiyorsunuz. Diyelim ki müşteriniz bir alışveriş sitesi ve yeni bir ürün kaydederken kaydettiği ürünün kaçıncı sırada olduğunu kayıt işlemi tamamlanmadan görmek istiyor. Bu ve benzeri durumlarla birçok web tabanlı yazılımda karşılaşabilirsiniz. Peki veritabanına bilgi yazmadan bir sonraki otomatik kayıt numarasını, başka bir deyişle auto_increment (otomatik artan) numara alanının oluşacak olan değerini nasıl görebiliriz?
Burada pek az kullanılan bir MySql deyimi olan "Table Status" deyimini kullanacağız. Basit bir örnekle işlemi yaparak konuyu hemen tamamlayalım:
Örneğin "Urunler" isimli tabloya yeni ekleyeceğimiz (henüz eklenmemiş) kaydın numarasını bulmamız gerekiyor. Urunler veritabanında da SiraNo isimli bir SERIAL alanımız olsun. Veritabanı bağlantısını kurduktan sonra:
$test1 = mysql_query("SHOW TABLE STATUS LIKE 'Urunler'");
$test2 = mysql_fetch_array($test1);
$YeniUrunNo = $test2['Auto_increment'];
echo "Ürün No : " . $YeniUrunNo;
That's all folks!
Necmettin ASLAN
www.nexyazilim.com/blog