Php ile MySQL Veritabanı İşlemleri – 2
Php ile MySQL veritabanı işlemleri yazısının ikincisi ile karşınızdayız. Evet arkadaşlar. Bu satırları blog sahibi olan ben (Ahmet) yazıyorum. Bu satırların altındaki yazıyıda atagul.net'in sahibi aynı zamanda benim üniversiten yakın bir arkadaşım olan Tanju hazırladı. İlk yazıyı gördükten sonra devamını kendisi getirmek istedi. Bende kırmadım hazırladığı yazıyı biraz düzenledikten sonra yayına hazırladım. Yazıyı okumadan bu yazıdan önce yayınlanan Php ile MySQL Veritabanı İşlemleri - 1 başlıklı yazımı okumanızı öneririm. Çünkü bu yazı önceki yazının devamı niteliğindedir. Aşağıdan yazıyı okumaya devam edebilirsiniz.
MySQL Select
SELECT komutu veritabanından veri çekmek(seçmek) için kullanılır. Genel kullanımı şu şekildedir.
-
SELECT sütun_ad(lar)ı FROM tablo_adı
Örnek:
Aşağıdaki kodlar “linkler” adlı tabloda ki (bir önceki dersimizde kullanmıştık) bütün verileri seçer. ( * karakteri database’de ki bütün veriyi çeker.)
-
<?php
-
if (!$baglanti) //durumu kontrol ediyoruz.
-
}
-
$sonuc = mysql_query("SELECT * FROM linkler"); //linkler tablosundaki bütün (*) verileri çekip sonuc değişkenimize aktardık
-
{
-
echo "
-
";
-
} // burada kullandığımız mysql_fetch_array() fonksiyonu her çağırıldığında sonuçlarımızdaki kayıtları ilk kayıttan başlayarak sırasıyla döndürmektedir. Biz de while döngüsünü kullanarak “sonuc” değişkenimizdeki ilk satırı “satir” değişkenimize aktardık. Ardından echo komutu ile her sütun arasına bir boşluk bırakarak ekrana yazdırdık. Döngü başa döndüğünde ise mysql_fetch_array() ikinci kayıdı döndüreceği için ikinci satırımız ekrana yazılmış olacak. Kayıtlarımız bitene kadar döngü devam edecek ve ardından veritabanımızı kapatacağız.
-
?>
Bu kodları goster.php olarak adlandırdığımız bir Php sayfasına ekleyip bu sayfayı çağırdığımızda, bilgiler.php sayfasındaki form aracılığıyla eklediğimiz bütün kayıtlar ekranda listelenecektir.
MySQL Where
Where koşulu tablomuzdan çekeceğimiz verileri filitrelememizi sağlar. Genel kullanımı şu şekildedir.
-
SELECT sütun_ad(ları)ı FROM tablo_adı WHERE sütun_adı="koşul-değer"
İşte örneğimiz:
-
if (!$baglanti) //durumu kontrol ediyoruz.
-
{
-
}
-
WHERE link_baslik='renkli teneke'"); // linkler tablosundaki bütün veriyi çekip başlığı “renkliteneke” olanları “sonuc” değişkenine aktardık.
-
{
-
echo "
-
";
-
// üstteki örnekte olduğu gibi “sonuc” değişkenimizdeki her satırı “satir” değişkenine aktardıktan sonra ekrana yazdırdık.
-
}
-
?>
MySQL Order By
Order By komutu kayıtlarımızı sıralamak için kullanılır. Order By varsayılan olarak kayıtları artan(ASC) sıralar. Eğer azalan olarak sıralamak isterseniz DESC komutunu kullanabilirsiniz.
-
SELECT sütun_ad(lar)ı FROM tablo_adı ORDER BY sütun_ad(lar)ı ASC (veya) DESC
Hemen Php içerisindeki kullanımına bakalım;
-
if (!$baglanti) //durumu kontrol ediyoruz.
-
{
-
}
-
$sonuc = mysql_query("SELECT * FROM linkler ORDER BY link_baslik"); // linkler tablosundaki bütün kayıtları seçip link_baslik sütununa göre sıraladık.
-
{
-
echo "
-
";
-
// üstteki örneklerde olduğu gibi “sonuc” değişkenimizdeki her satırı “satir” değişkenine aktardıktan sonra ekrana yazdırdık.
-
}
-
?>
Dikkat ettiyseniz örneğimizde ne ASC ne de DESC kullandık. Order By varsayılan olarak ASC(artan) sıraladığı için kayıtlarımız A’dan Z’ye sıralanacak. Eğer tersine sıralamak istersek DESC kullanmamız gerekir. O zaman da SQL’imiz şu şekilde olacaktı;
-
SELECT * FROM linkler ORDER BY link_baslik DESC
Ayrıca kayıtlarımızı birden fazla sütuna göre sıralamakta mümkündür. Birden fazla sütuna göre sıraladığımızda ikinci sütun sadece ilk sütunun değerleri eşit olan kayıtlarda sıralanacaktır. Hemen ufak bir örnekle anlatayım. Aşağıdaki kayıtları içeren “ad” ve “soyad” sütunları bulunan bir tablomuz olsun.
1. Ahmet Ertürk
2. Tanju Atagül
3. Ahmet Dursun
4. Tanju Çolak
İki sütuna göre sıralamak için şu kodları kullanıyoruz.
-
SELECT * FROM isimler ORDER BY ad ASC, soyad DESC
Bu sorgu şu anlama gelmektedir: “isimler” tablosundaki bütün kayıtları seç, “ad” sütununa göre artan (ASC yazmasanızda artan sıralar) “soyad” sütununa göre de azalan sırala.
Sorgu sonucunda sıralama şu şekilde olacaktır;
1. Ahmet Ertürk
3. Ahmet Dursun
4. Tanju Çolak
2. Tanju Atagül
MySQL Update
Update komutu veritabanındaki kayıtları güncellememizi sağlar. Kullanımı şu şekildedir;
-
UPDATE tablo_adı SET sütun1=değer, sütun2=değer,... WHERE sütun_adı=değer
Dikkat ettiyseniz Where koşulunu kullandık. Where koşulu burada hangi kayıdın ya da kayıtların güncelleneceğini belirlemek içindir. Burası çok önemli, eğer Where koşulunu yazmazsanız kayıtlarınızın tamamı güncellenir! Order By da yazdığım “isimler” isimli tablomuzda bir güncelleme yapalım hemen. Bu arada “isimler” tablomuzun da “linkler” tablosu gibi “link” adlı veritabanımızda olduğunu varsayıyoruz.
-
<?php
-
-
if (!$baglanti) //durumu kontrol ediyoruz.
-
{
-
}
-
WHERE ad = 'Ahmet' AND soyad = 'Dursun'");
-
//veritabanına şunu demiş olduk; isimler tablosunda “ad” sütunu ‘Ahmet’, “soyad” sütunu ‘Dursun’ olan kaydın “soyad” sütununu ‘Yesevi’ olarak güncelle
-
?>
Bu kodları çalıştırdıktan sonra veritabanını açıp bakarsanız “isimler” tablosunda Ahmet Dursun yerine Ahmet Yesevi kaydını görürsünüz. Eğer koşulumuzda “AND soyad=’Dursun’” kısmını kullanmasaydık, yani sadece “Where ad = ‘Ahmet’” kullansaydık hem Ahmet Ertürk hem de Ahmet Dursun kaydını Ahmet Yesevi olarak güncellendiğini görürdük. Yani tablomuzda “ad” sütununun değeri ‘Ahmet’, “soyad” sütununun değeri ‘Yesevi’ olan iki kaydımız olurdu. Where koşulunu hiç kullanmasaydık bütün kayıtların soyadı ‘Yesevi’ olarak değişecekti.
MySQL Delete
Delete komutu tablomuzdan kayıt silmek için kullanılır. Kullanımı şu şekildedir;
-
DELETE FROM tablo_adı WHERE sütun_adı = değer
Update komutunda olduğu gibi Delete komutunda da Where kullanmamız gerekir. Eğer ki Where koşulunu kullanmazsak tablomuzdaki bütün kayıtlar silinecektir! Şimdi de “isimler” tablomuzda az önce düzenlediğimiz Ahmet Yesevi kaydını silelim.
-
if (!$baglanti) //durumu kontrol ediyoruz.
-
{
-
}
-
// ”isimler” adlı tabloda “soyad” sütununun değeri ‘Yesevi’ olan kayıtları sil.
-
?>
Yukarıdaki sorguya uyan tek kayıt ‘Ahmet Yesevi’ kaydı olduğu için sadece bu kayıt silinecektir. Eğer koşulumuz “soyad='Yesevi'” değil de “ad=’Ahmet’” olsaydı hem ‘Ahmet Ertürk’ hem de ‘Ahmet Yesevi’ kayıtlarının ikisi birden silinecekti.
Son oalrak şunu söylemek istiyorum; farketmişsinizdir, bütün örneklerimizde sadece tek bir satır farklı: mysql_query(); komutunun bulunduğu satır. Geri kalan veritabanı bağlantısı, veritabanı seçimi ve veritabanı bağlantısının kapatılması yapılan bütün satırlar aynı. Yani iyi derecede SQL bilginiz varsa çok güzel bir (İçerik Yönetim Sistemi)İYS yazabilirsiniz. Eğer yeterince SQL bilmediğinizi düşünüyorsanız sitemizi takip etmeye devam edin, sayemizde çok iyi derecede SQL öğreneceksiniz.
Evet arkadaşlar bu yazımızın da sonuna geldik. Umarım faydalı bir yazı olmuştur. Tekrar görüşmek üzere şimdilik hoşçakalın.
RenkliTeneke.Com blogundaki yeni yazılardan haberdar olmak için RSS Abonesi olabilirsiniz. İsterseniz Twitter'dan ya da FriendFeed'den takip edebilirsiniz. Ya da "Yeni yazılar e-mail adresime gelsin" diyorsanız e-mail abonesi olabilirsiniz.
Merhaba sevgili ziyaretçi. Şuanda renkliteneke.com bloguna " ataguL" tarafından " 6 Temmuz 2009" tarihinde yazılmış olan "Php ile MySQL Veritabanı İşlemleri – 2" başlıklı bu yazıyı okuyorsun. Bu yazının başka bir yerde yayınlaması yasaktır. Her yazı ayrı bir özen içerisinde hazırlanıyor ve bu emeğin iki tık ile heba edilmesi pek hoşuma gitmez. Bu açıklama ise bilgilenmeniz için yazılmıştır.














Yine muhteşem bilgilendirici, eğitici bir yazı. Elleriinize sağlık. Kodların ilk makalede olduğu gibi demo sayfalarını oluşturup yayınlayabilir misiniz? Kendi adıma bu şekilde içinden çıkamıyorum.
Mümkünse ilk makalenin devamı gibi olsun. ekleyeceğiniz demo sayfalar birbirini takip etsin. Benimki sadece bir fikir. Uygun görürseniz daha yararlı olacağını düşünüyorum.
emrin olur paşam :P yani kusura bakmayın ama isteklerinizin ardı arkası kesilmeyecek gibi geldi birden bana.
Yukarıdaki yazı hakkında kendi düşüncelerinizi yazın!
Lütfen yukarıdaki yazı hakkında düşüncelerini paylaş. Senin düşündüklerin bazen bu blogdaki yeni yayınlanacak yazının hangi konuda yazı yazılması gerektiğini belirliyor.Reklam
renkliteneke.com’u takip edenler :)
Yeni Yazılar E-mail Adresinize Gelsin
Reklam
Kategoriler
Üye Paneli
Bağlantılar
Arşiv
Tavsiye Bağlantılar
son yapılan yorumlar
en çok yorumlananlar
en çok okunanlar