NEX YAZILIM

NECMETTİN ASLAN KİŞİSEL YAZILIM GELİŞTİRME DÜŞÜNCE KEŞİF PAYLAŞIM VS GÜNLÜĞÜ

PHP, 11.03.2010 - 15:03
MySql ile auto increment noyu veritabanına yazmadan bulmak

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

 

 

YORUMLA
İsim - email
Başlık
Yorumunuz
YORUMLAR
Murat, 25.11.2009 - 21:56 - Teşekkürler
Bende Bunu Arıyordum :) Paylaşımın için Teşekkürler
CEO Müşteri İlişkileri
Ezgi MP3 Player
Haber Portalı
DYB İÇOM
C#
PHP
Network
PDA
Assembly
Hardware
XP & Vista
e - Kitap
Baloncuk
RSS (Canlı Başlıklar)
Ara
ÖTEKİLER
Ahmet Kaymaz
CE Turk
İç Mihrak