Merhaba ekteki dosyamda Çoklu Kayıt Formunda tek seferde çoklu kayıtları gönderebilecek form mevcut tek seferde sql veri tabanına gönderme yapmak istiyorum form üzerinde açıklama mevcuttur.
Yöntem olarak Serkan beyin anlatımını uygulayabilirsiniz;
Mysql veri tabanına birden fazla veriyi insert, delete, update yapmamız gerekebilir. Bu yazımda sizlere bunu mysql ile nasıl yapacağımızı anlatmaya çalışacağım.
İlk olarak mysql tablomuzu oluşturalım.
CREATE TABLE
yazilar
(
yazi_id
int(20) UNSIGNED NOT NULL AUTO_INCREMENT ,
yazi
text NOT NULL ,
baslik
text NOT NULL ,
yazi_durumu
varchar(20) NOT NULL ,
PRIMARY KEY (
yazi_id
)
);
Tablomuzda id(primary key), yazi, baslik, ve durum sütunları bulunmaktadır. Örneklerimizi bu tabloya göre yapacağız .
Çoklu INSERT
Tablomuza 4
SATIR ekleyelim . Her
SATIR için tek tek sorgu yapmak yerine tek seferde tablomuza ekleyeceğiz.
INSERT INTO tablo_adi
(id, yazi, baslik, durum)
VALUES
( 1, 'Yazi 1', 'Başlık 1', 'yayinda'),
( 2, 'Yazi 2', 'Başlık 2', 'yayinda'),
( 3, 'Yazi 3', 'Başlık 3', 'yayinda'),
( 4, 'Yazi 4', 'Başlık 4', 'yayinda');
Sütun isimlerini yazmadan insert işlemeni şu şekilde de yapabilirsiniz .
INSERT INTO tablo_adi
VALUES
( 1, 'Yazi 1', 'Başlık 1', 'yayinda'),
( 2, 'Yazi 2', 'Başlık 2', 'yayinda'),
( 3, 'Yazi 3', 'Başlık 3', 'yayinda'),
( 4, 'Yazi 4', 'Başlık 4', 'yayinda');
Çoklu UPDATE
Şimdi bu eklediğimiz 4 satırı güncelleyelim. Bu 4 satırdaki
'durum' sütunundaki değerleri 'taslak' olarak değiştirelim. Sql kodumuz şu şekilde olacak .
UPDATE tablo_adi
SET durum= 'taslak'
WHERE id IN (1,2,3,4);
Bütün satırlardaki değerleri farklı olarak kaydetmek isterseniz sql kodumuz ;
UPDATE tablo_adi SET
yazi = CASE
WHEN id = 1 THEN 'yazi 1 update'
WHEN id = 2 THEN 'yazi 1 update'
END,
baslik = CASE
WHEN id = 1 THEN 'Baslik 1 update'
WHEN id = 2 THEN 'Baslik 1 update'
END
WHERE id IN (1,2);
Aslında buradaki
WHERE id (1,2) yazmadığımızda da update işlemini daha yavaş yapıyor .
WHERE id (1,2) kullandığımızda sorgu süresi :
Affected rows: 2
Time: 0.001ms
WHERE id (1,2) kullanmadığımızda sorgu süresi :
Affected rows: 2
Time: 0.003ms
Çoklu DELETE
Şimdi de eklediğimiz bu 4 satırı silelim :
DELETE FROM tablo_adi WHERE id IN (1,2,3,4);
Kısacası TEK satırlık kayıt yapılan veri bilgilerini kaç
SATIR çoğaltacaksanız kodu ona göre düzenleyeceksiniz