Merhaba; alt text Php yazdığım sistem için bir form hazırladım, burada bir takım bilgileri database deki alanlara post ettirmem gerekiyor. Herşey güzel çalışıyor ama görmüş olduğunuz tablolardan room reservation tablosunda 3 tane id değeri döndürmem gerekiyor, bunlardan customer_id nin son değerini alabilmek adına php nin lastInsertId(); fonksiyonunu kullandım. Bu gayet güzel çalıştı fakat aynı tablo da room_id içinde lastInsertId(); kullanmam gerekli. Fakat room_id için de lastInsertId(); kullandığım da hata alıyorum çeşitli yöntemler denedim ama yine null döndürmeye devam etti. Bu sıkıntıyı aşabilmemin kolay bir yolu var mı? Cevaplarınız için şimdiden teşekkür ederim. Kod bloğu da burada;

$ekle = $db->prepare("INSERT INTO customers SET
tc_pass_no = ?,
title = ?,
name_surname = ?,
institution = ?,
phone = ?,
mail = ?,
guest_count = ?");

$insert =   $ekle->execute(array($tc_pass_no,$title,$name_surname,$institution,$phone,$mail,$guest_count)) or die("Veri    Eklenemedi (Database Connection Error!)");

$lastId = $db->lastInsertId();
$ekle1 = $db->prepare("INSERT INTO room_reservation SET
customer_id = ?
checkin_date = ?,
checkout_date = ?,
checkin_time = ?,
checkout_time = ?");

$insert1 = $ekle1->execute(array($lastId,$checkin_date,$checkout_date,$checkin_time,$checkout_time)) or die("<div class='warning-color'>Veri Eklenemedi!(Database Connection Error Room Reservation Table!)</div>");

$son_id =$db->lastInsertId();
$ekle3 = $db->prepare("INSERT INTO room_reservation SET
room_id = ?");

$insert3 = $ekle3->execute(array($son_id)) or die("OLMADI!");

$ekle2 = $db->prepare("INSERT INTO rooms SET
room_no = ?,
room_available = ?,
room_status = ?,
reserved = ?,
pay_status = ?");

$insert2 = $ekle2->execute(array($room_no, $room_available, $room_status, $reserved, $pay_status)) or die("<div class='warning-color'>Veri Eklenemedi!(Database Connection Error Rooms Table!)</div>");;

if ($insert && $insert1 && $insert2 && $insert3) {
    echo "tamamdır!";
} else {
    echo "olmadı!";
}

soruldu: 03 Nis, 07:02

coder86's gravatar image

coder86
220223035
cevap kabul oranı: 0%

kapatıldı: 09 Nis, 10:41

Bu soru 09 Nis, 10:41 coder86 tarafından "Diğer" gerekçesiyle kapatıldı.


lastInsertId() tabloya son eklenen kaydın primary id'sini verir doğru. Kodlarını inceledim lakin herhangi bir hata göremedim. Sanırım alt alta birden fazla PreparedStatement kullanımından kaynaklı bir sorun diye düşünüyorum ama mühim değil.

lastInsertId() yerine aşağıdaki SQL cümlesini yazarakta istenilen tablonun son id değerine ulaşabilirsin.

# sql sorgu cumlesi
$sqlQuery = 'SELECT room_id FROM rooms ORDER BY room_id DESC LIMIT 1';
$result = $db->query($sqlQuery);
$lasId = 0;

# son id degerini alalim
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
       $lastId = $row['room_id'];
    }
} else {
    $lastId = null;
}
permanent link

cevaplandı: 03 Nis, 10:00

emrecan-oztas's gravatar image

emrecan-oztas
4.1k62146
cevap kabul oranı: 24%

Cevabınız için çok teşekkür ederim.

(04 Nis, 08:15) coder86 coder86's gravatar image

Cevap sorununuzu çözmüş ise doğru olarak işaretlemenizi rica ederim. İyi çalışmalar...

(04 Nis, 12:46) emrecan-oztas emrecan-oztas's gravatar image

Cevap sorunu çözmedi.

(08 Nis, 11:54) coder86 coder86's gravatar image

eminim öyledir. Ne de olsa coderr olan sensin, daha iyi bilirsin ;)

(08 Nis, 19:54) emrecan-oztas emrecan-oztas's gravatar image

Estağfurullah kimseye coderlık taslamak gibi bir derdimiz yok birader. Çözmedi diyosak öyledir! Daha iyi bilecek olsam buraya sormazdım.

(09 Nis, 10:32) coder86 coder86's gravatar image

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×90

Soruldu: 03 Nis, 07:02

Görüntüleme: 268 kez

Son güncelleme: 09 Nis, 10:41

powered by BitNami OSQA