Veritabanına anlık yapılan kaydı seçmek
8
●1.577
- 27-12-2014, 12:12:37Hocam eğer isteğiniz şeyi yanlış anlamadıysam şöyle bir çözüm yolu önerebilirim;REeL13 adlı üyeden alıntı: mesajı görüntüle
Her kayıt için ID adında bir nitelik olsun. Yapılan her kayıt veritabanına kayıt edilirken, veritabanının her kayıt için auto_increment olarak o kayda, bir ID atamasını sağla. Daha sonra ise, yapılan o kaydın ID bilgisini alarak, o kaydı seçmek bir çözüm yolu olabilir. ID adlı niteliği aynı zamanda primary_key yapın. Böylece o kayıt, diğer kayıtlardan da tamamen farklı bir ID numarasına sahip olacağı için daha sağlıklı bir çözüm yolu olacaktır. Yani veritabanının atadığı ID ile direkt olarak ilgili kaydı seçebileceksiniz. - 27-12-2014, 13:32:19Evet haklısın id gibi bağımsız değer üretilen bir alan var fakat bu kayıt girerken otomatik oluşuyor öncesinde bilgimiz yok hangi id olacağına dair. O yüzden direk id si ile nasıl seçeceğiz kayıttan sonra.pcmania adlı üyeden alıntı: mesajı görüntüle
- 27-12-2014, 13:44:31Kimlik doğrulama veya yönetimden onay bekliyor.İnser işleminden sonra Eklenen Kaydın ID numaraını almak için
mysql için mysql_insert_id()
mysqli için $mysqli->insert_id
Komutları Kullanılmaktadır - 27-12-2014, 14:14:19Hocam o zaman benim dediğim yerden yola çıkalım. Yani "0" dan başlamış ve her yeni kayıt girildiğinde "auto_increment" sayesinde ID +1 artıyor diyelim.REeL13 adlı üyeden alıntı: mesajı görüntüle
İlk kayıt girildi. ID : 1 oldu
Ikıcı kayıt girildi. ID : 2 oldu
.
.
.
.
.
vs. şeklinde yeni her kayıtta ID otomatik olarak 1 artarak, yeni eklenen kayda ID olarak atanarak gidiyor. Bayağı bir kayıt girildi diyelim ve son girilen kaydın ID bilgisi için veritabanı örneğin : 30 oldu diyelim. Ama biz bunu bilmiyoruz. Sizin de dediğiniz gibi.
O halde şöyle bir MySQL sorgusu yapılabilir :
$kayıtBilgi = mysql_query("SELECT id FROM tablo_adi ORDER BY id DESC LIMIT 0, 1");Normal şartlarda ID, her kayıt girildiğinde artan bir şekilde gidiyordu. Bu koddaki ORDER BY DESC ile tablo ID'lerini tersten dizdik. Mesela ID=30 sonuncu kayıt ise, ilk kayıt olmuş olacak. Daha sonra ise, LIMIT 0,1 yaptık. Yani veritabanına "tablonun en üstündeki kaydın, ID'sini ver" demiş olduk. En üstteki ID=30 olacağı için, aslında biz son girilen kaydın ID bilgisini almış olduk.
Sonrasında ise zaten bu $kayıtBilgi ifadesini fetch ile $sonGirilenKayitID değişkenine atıyoruz.
$sonGirilenKayitID = mysql_fetch_assoc($kayıtBilgi); //mysql_fetch_array($kayıtBilgi); şeklinde de deneyebilirsiniz eğer assoc ile olmazsa. echo $sonGirilenKayitID["id"]; //tablodaki ID sutunun adının 'id' olduğunu varsaydım.
$sonGirilenKayitID değişkeni; 30 olmuş oldu. Böylece son kaydın ID bilgisini almış olduk. - 27-12-2014, 14:38:44Hocam son kaydın id sini seçmeyi izah etmişsiniz evet bunda sorun yok ama bu kodun pratikde hata yapma ihtimali var. Çünkü sisteme bir çok kullanıcı kayıt girdiği için kod okumada sunucuda bir süreç olduğu için pratik de yanlışlık yapma olasılığı var.pcmania adlı üyeden alıntı: mesajı görüntüle
Bu fonksiyon araştırıyorum hocam.MehmetCAKIR adlı üyeden alıntı: mesajı görüntüle - 27-12-2014, 15:07:31insert id ile son bu bağlantıdan yapılan kaydın id si seçilir tüm kullanıcılardan gelen değil ama siz illa başka yol derseniz ek bi alan oluşturun tarihsel ve random bi sayı ile birlikte insert esnasında kaydedin sonrada bu kaydı seçin işinizi gorecektir
- 28-12-2014, 11:43:38Üyeliği durdurulduson kayıt id sini alıp veritabanında işlemlere devam edecekseniz trigger kullanıcaksınız. php ile başka işler yapıcaksanız insert sorgunuzdan sonra yerleşik fonk. veya yeni bir sql sorgusu ile son eklenen id'yi almanız mümkün.REeL13 adlı üyeden alıntı: mesajı görüntüle
iyi çalışmalar - 28-12-2014, 13:07:54Üyeliği durdurulduhttp://www.pontikis.net/blog/how-and...ble-mysql-logs
inceleyin bunu işinizi görecektir.
my.cnf dosyasında gerekli logları aktif ettiğinizde hataları, sorguları ve benzeri durumların loglarını bir dosyada tutabilirsiniz. bunları çektiğinizde tarihli bir şekilde kaydedildiğini sanıyorum. ona göre işlemler yapabilirsiniz.
Yada mysql_query fonksiyonu oluşturup her queryde birde loga yollamalısınız bu biraz riskli gibi 1. seçenek daha olumlu
NOT : konu başlığını çok yanlış açıyorsunuz
Bende robot gibi cevap veriyorum okumadan. K.bakma mysql_insert_id en son yapılan sql id auto numeric ise verir. yada order by id desc limit 0,1 diyerek son id almış oluyorsunuz
Bende robot gibi cevap veriyorum okumadan. K.bakma mysql_insert_id en son yapılan sql id auto numeric ise verir. yada order by id desc limit 0,1 diyerek son id almış oluyorsunuz