lostyazilim
tr.link

PDO verileri numaralandırma

5 Mesajlar 1.111 Okunma
lstbozum
tr.link

efegungor efegungor WM Aracı Kullanıcı
  • Üyelik 18.09.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek gıda mühendisi
  • Konum Bursa
  • Ad Soyad E** G**
  • Mesajlar 13
  • Beğeniler 7 / 1
  • Ticaret 0, (%0)
Veritabanımda id sütunu dışında farklı bir numaralandırma daha yapmak istiyorum uyesira gibi. Girdiğim değerler üyenin karşısına bu sıra ile gelecek, yeni kayıt eklediğimde son sayıdan bir fazlası ile girmesini istiyorum. Bir kayıt silindiğinde ise eksilen sıra numarası ya boş kalacak yeni kayıt eklenmesi için ya da tüm kayıtlar bir sıra eksilecek bunu nasıl yapabilirim?
 

 

wmaraci
reklam

compost0x compost0x Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.05.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Muğla
  • Ad Soyad A** Y**
  • Mesajlar 99
  • Beğeniler 23 / 19
  • Ticaret 2, (%50)
Merhabalar,

Şimdi öncelikle aşağıdaki gibi bir tablomuz oldugunu varsayalım.



Bu tabloda 2. kolon olan counter kolonu
id den bağımsız olarak eklenen verinin kaçıncı veri oldugunu yazıcak.
Yeni kayıt girdiğinizde her zaman bir fazlası eklenerek gidecektir.

2. bir tablo yaratıyoruz ;



Bu tabloda tablo ismini ve sıra numarasını girdik. Böylece bizim TABLO1 tablosunda
tuttuğumuz counter kayıtı kaçıncı sırada burada yedekleyeceğiz.

Şimdi pdolarımızı yazalım.

$sql = $dbo->prepare("SELECT values FROM sayac_tablo WHERE id='1' ");
$sql->execute();
$dizi = $sql->fetchAll(PDO::FETCH_ASSOC);
$sayac1=$dizi[0]['values '];


Sayac tablosundan sayaç sıramızı çektik.
Şimdi insert zamanı

$sqlinsert = $dbo->prepare("INSERT INTO tablo1 (counter, kolon3, kolon4, ...)
VALUES ('$sayac1', '$kolon3deger', '$kolon4deger', ...);
$sqlinsert->execute();
efegungor

kişi bu mesajı beğendi.

efegungor efegungor WM Aracı Kullanıcı
  • Üyelik 18.09.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek gıda mühendisi
  • Konum Bursa
  • Ad Soyad E** G**
  • Mesajlar 13
  • Beğeniler 7 / 1
  • Ticaret 0, (%0)


tam olarak istediğim yukarıdaki resimde görülüyor uyeid=1 olan üyenin 9 adet malzemesi var ve bunlar 9 a kadar sıralanmış. uyeid=2 olan üyenin ise 1 malzemesi var ve uyesira=1 olarak görüyor bahsettiğiniz kodlar bu mantıkla mı çalışacak?
 

 

efegungor efegungor WM Aracı Kullanıcı
  • Üyelik 18.09.2018
  • Yaş/Cinsiyet 35 / E
  • Meslek gıda mühendisi
  • Konum Bursa
  • Ad Soyad E** G**
  • Mesajlar 13
  • Beğeniler 7 / 1
  • Ticaret 0, (%0)
$kid = $_SESSION['id'];
$ad = $_POST['ad'];
$fiyat = $_POST['fiyat'];
$birim = $_POST['birim'];
$tip = $_POST['tip'];
$sql1=$baglanti->prepare("SELECT MAX(uyesira) FROM uyemalzeme WHERE uyeid=?");
$sql1->execute(array($kid));
$maxuyesira= $sql1->fetchColumn();
if ($sql1) {
$sql2=$baglanti->prepare("INSERT INTO uyemalzeme (uyeid,uyesira,ad,fiyat,birim,tip) VALUES (?,?,?,?,?,?)");
$sql2->execute(array($kid,$maxuyesira+1,$ad,$fiyat,$birim,$tip));
if ($sql2) {
echo 'Malzeme Başarıyla eklendi';}}
else { echo "Max değer bulunamadı"; }
?>

Bu kodlar ile istediğimin bir kısmını hallettim şimdi sıra üyenin sildiği malzemenin id'sine göre tüm tabloyu güncelleyip sıra boşluğu olmasının önüne geçmek. Bunu da silme işlemi sırasında gerçekleştirmeyi planlıyorum
 

 

wmaraci
wmaraci

compost0x compost0x Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.05.2018
  • Yaş/Cinsiyet 30 / E
  • Meslek Öğrenci
  • Konum Muğla
  • Ad Soyad A** Y**
  • Mesajlar 99
  • Beğeniler 23 / 19
  • Ticaret 2, (%50)
Yine aynı mantık kullanıcı sayaç yapabilirsin
 

 

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al