PDA

Orijinalini görmek için tıklayınız : Çoklu veritabanı kayıt destek


nickelaj
15-04-2019, 16:15:53
Merhaba,

Bir form ile bilgileri alıyorum ve bunları ajax ile aynı veritabanında 2 alana yazdırmaya çalışıyorum.

Gelen formdaki bazı bilgileri bilgi başlığına yazıyorum ve bazılarını da veri_açıklama başlığına yazıyorum. Yapmaya çalıştığım ise insert yaparken veri id otomatik alıyor, ve bu alınan id rakamını da veri_açıklamada v_id kısmına yazdırmak istiyorum. Yani bağlı olduğu verinin id numarasını belirtmek istiyorum.
En son id çektirip ona göre yapayım dedim olmadı, bunun mutlaka pratik bir yolu vardır diye sormak istedim. Umarım karışık anlatmamışımdır.


veri
id title author
--------------------------
1 Deneme AHmet
2 Ornek Mehmet


veri_aciklama
id v_id aciklama konu
----------------------------------------------
1 1 Uzun açıklama Var
2 1 Ornek Açıklama Yok
3 2 Açıklama Yok Var




$id = ?????


$result1 = DB::insert("INSERT INTO veri(title,author) VALUES($title,$author)");

$result2 = DB::insert("INSERT INTO veri_aciklama(v_id,aciklama,konu) VALUES($id,$aciklama,$konu)");

Zeta
15-04-2019, 16:27:21
1. tabloya kayit yaptıktan sonra last insert id ile id'yi alip 2. tabloya kayit yapabilirsiniz

nickelaj
15-04-2019, 16:33:39
1. tabloya kayit yaptıktan sonra last insert id ile id'yi alip 2. tabloya kayit yapabilirsiniz
İlk aklıma o geldi ama mysql ile çekmediğim için bir türlü adapte edemedim.

$id = $result1->lastInsertId(); denedim almadı mesela

Zeta
15-04-2019, 16:35:55
İlk aklıma o geldi ama mysql ile çekmediğim için bir türlü adapte edemedim.

$id = $result1->lastInsertId(); denedim almadı mesela
kullandığın kodu paylaşırsan yardımcı olacak arkadaşlar çıkacaktır.

nickelaj
15-04-2019, 16:37:27
kullandığın kodu paylaşırsan yardımcı olacak arkadaşlar çıkacaktır.

ilk posta ekledim sonradan. Yine de teşekkürler ilginize



ilk posta ekledim sonradan. Yine de teşekkürler ilginize
Alttaki gibi bir örnek buldum ama bununla da çektiremedim son id numarasını.

$id = DB::select('SELECT id FROM veri ORDER BY id DESC LIMIT 1');

Zeta
15-04-2019, 20:44:51
ilk posta ekledim sonradan. Yine de teşekkürler ilginize




Alttaki gibi bir örnek buldum ama bununla da çektiremedim son id numarasını.

$id = DB::select('SELECT id FROM veri ORDER BY id DESC LIMIT 1');

framework mü kullanıyorsunuz veya kullandıgınız db sınıfının adı nedir

berkimren
15-04-2019, 20:48:56
Hocam rand komutu ile her veriye key atayabilirsiniz, ikinci insertte ise ilk insertte kaydedilen keyi aratıp Where ile oraya yerleştirirsiniz

nickelaj
15-04-2019, 21:04:05
framework mü kullanıyorsunuz veya kullandıgınız db sınıfının adı nedir

Mysql kullanıyorum. Çok ta uzman olmadığımdan yanlış cevap vermiş olmayayım. Aldığım bir scripti kendime uyarlamaya çalışıyorum.



Hocam rand komutu ile her veriye key atayabilirsiniz, ikinci insertte ise ilk insertte kaydedilen keyi aratıp Where ile oraya yerleştirirsiniz
Tavsiyeniz için teşekkürler ama daha hızlı bir yolu vardır mutlaka.
Getlastid diye bir sistemle son idyi alabilmem uygun olacak ama paylaştığım kodlarda başaramadım

berkimren
15-04-2019, 22:15:31
Tabikide vardır ancak ben soyledigim sistemi kullanırım sebebi ise aynı anda 2 kisinin islem yaptıgını dusunun binde bir de olsa hatalı idyi alma ihtimali var. O yuzden bir key tanımlayıp ikinci insertte o keye islem yaptırmak daha mantıklı geliyor

nickelaj
16-04-2019, 18:21:02
framework mü kullanıyorsunuz veya kullandıgınız db sınıfının adı nedir

Cehaletime verin, dünden beri kurcaladıkça db sınıfının laravel framework olduğunu öğrendim.
Basit şekilde php sorgulama öğrenirken bu çıktı karşıma, aramalarla öğrenmeye çalışıyorum.
İlginize teşekkür ederim.

Zeta
16-04-2019, 18:34:32
Cehaletime verin, dünden beri kurcaladıkça db sınıfının laravel framework olduğunu öğrendim.
Basit şekilde php sorgulama öğrenirken bu çıktı karşıma, aramalarla öğrenmeye çalışıyorum.
İlginize teşekkür ederim.

$id = DB::getPdo()->lastInsertId();
ile almayi denediniz mi ?

nickelaj
24-04-2019, 14:09:29
$id = DB::getPdo()->lastInsertId();ile almayi denediniz mi ?
Kusura bakmayın geç dönüyorum, @berkimren tavsiyesine uydum random karakter ile çözdüm .
Sizin tavsiyenizi de kaydettim notlarıma. Deneyerek öğrenmeye çalışıyorum.
Teşekkürler