Kategoriler
mysql hakkında Öylesin Esti Php ve mysql Programlama Dilleri Webmaster yardım

PDO ve mysql işlemleri – [Başlangıç ve orta düzey] : Ekleme, silme, güncelleme, listeleme, bağlanma

PDO: gelişmiş veri tabanı yönetimi eklentisidir. Php nin yeni versiyonları ile hayatımıza girmeye başlayan bu uygulama bir çok veritabanını destekliyor. Böylece veritabanı modeli değiştirmek zorunda kaldığımızda php kodlarımızı silbaştan tekrar değiştirmek zorunda kalmayacağız. Çünkü PDO ile hazırlanan sorgu cümlecikleri desteklenen bütün veritabanı modellerinde geçerli olacak. size sadece başlangıç bağlantı sorgusunuz düzeltmek kalıyor.

PDO’nun desteklediği veri tabanı modelleri:
Cubrid
FreeTDS / Microsoft SQL Server / Sybase
Firebird/Interbase 6
IBM DB2
IBM Informix Dynamic Server
MySQL 3.x/4.x/5.x
Oracle Call Interface
ODBC v3 (IBM DB2, unixODBC and win32 ODBC)
PostgreSQL
SQLite 3 and SQLite 2
Microsoft SQL Server / SQL Azure

Php geliştiricileri artık php ve veritabanı programcılarına PDO yapısına geçmeleri konusunda tavsiyelerde bulunuyorlar. Ciddi anlamda da ilerleyen yıllarda PDO yapısının artık eski sistemlerin yerini alacağını düşünüyorum. Her şekilde öğrenmesi zor ve hantal sorgulardan bizi kurtaran yeni PDO programı Türk gençleri tarafından da bir an önce benimsenmeli ve kullanılmaya başlanmalı.

PDO ilk başlarda size zor gelebilir ancak sonrasında öğrendikçe zevkli olduğunu ve programlamasının kolaylığı ile heycanlandığınızı göreceksiniz. 3-4 ay önce PDO sistemine geçmek istediğimde düzgün bir anlatım bulamamıştım. Henüz 2 hafta falan oldu hobi amaçlı başladığım PDO uygulamasına yönelik tecrübelerimi yeni ve bunu öğrenmek isteyen kişilerle paylaşacağım.

Tavsiye: Bu konuda dökumanlardan çok sizin konuyu ne kadar öğrenmek istediğiniz önemlidir. Bilgisayarınızda bir localhost kurarak test ortamı hazırlayın. Hataları, doğruları test ederek gördüğünüzde öğrenmek dahada kolaylaşacaktır.

PDO konusunda şuan için başlangıç ve orta seviyesindeki konulara yer vereceğim. Aşağıdaki dökumanda yer vermediğim bir çok parametrede olacaktır. bunlara zamanım olduğunda yer vereceğim. Şuan için orta derece bir bilgiye bu dökuman ile ulaşabileceksiniz. Sonrasında zaten kendiliğinden yeteneğiniz artacaktır.

Öncelikle veritabanı bağlantı kod parçacığımızı ele alıp bağlantıyı sorunsuz gerçekleştirelim.

PDO Mysql veri tabanı bağlantısı

	<?php
	$host = "localhost";
	$dbismi = "test"; // Database ismi
	$dbkullanici = "root"; // Database kullanici adi
	$dbsifre = ""; // Kullanici sifresi

	try {
		$dbpdo = new PDO("mysql:host={$host};dbname={$dbismi}", $dbkullanici, $dbsifre, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
		$dbpdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
	} catch (PDOException $e) {
		return 'Baglanti hatasi '. $e->getMessage();
	}
	/* basit select kodu */
	$as = $dbpdo->query('SELECT * FROM galeriler');

	foreach($as as $row) {
	echo $row["ismi"]."<br>";
	}
?>

PDO php’nin yan uygulaması olarak geliyor. bazı sunucularda aktif edilmemiş olabilir. Apacheyi derlerken pdo bölümünüde seçemniz gerekli, bunun yanında mysql ve php ilişiğini sağlayan diğer yan uygulamalarıda seçmeniz gerekli (şuan isimleri aklımda değil :=)). Ayrıca PDO phpnin 5.1.x versiyonu dahil yeni sürümlerinde desteklenmektedir. Eski versiyon php programınız varsa güncellemenizi öneririm..

PDO::QUERY Mysql Select komutu

Select komutunu 2 ayrı başlıkta inceleyeceğiz arkadaşlar. İlki tek veriyi, tabloyu çekerek işlem yapma, diğeri ise birden fazla sonucu foreach yada while ile işleme alma. Yeni başlayanların yada yanlış bilenlerin ve daha hızlı hafif sorgular oluşturabilmeniz için gerekli olan PDO parametrelerinede bildiğim kadarıyla yer vermeye çalışacağım.

1 – Tek veri işleme:

Sorgumuz aşağıdaki gibi olacaktır:

$veri = $dbpdo->query('SELECT * FROM galeriler WHERE id = 3');
$veri = $veri->fetch(PDO::FETCH_ASSOC);

print_r($veri);
/*
Çıktı bu şekilde olur:

Array ( 
[id] => 3 
[ismi] => Backgrounds 
[aciklama] => Background displays can bring your computer screen to life. 
[userid] => 20 
)
*/

echo $veri["ismi"]; /* çıktı: Backgrounds */

Bazı arkadaşlar direk fetch() diğer kullanıyor ancak bu yanlıştır. parantezler arasına PDO parametlerini koyarak size en uygun veri biçimini çekerseniz gereksiz gelecek verilerden ve harcanacak zamandan kurtulursunuz. Bu alanda kullanabileceğiniz PDO parametlerine kısa bir göz atalım:

PDO::FETCH_ASSOC: veriyi stun ismi ile çeker. Örnek:

Array
(
    [ismi] => Backgrounds
    [aciklama] => fisfisda fisfis
)

PDO::FETCH_BOTH: Veriyi karşık çeker, yani hem stun ismiyle hemde sayısal değeri ile karışık iki bölüm işler. Eğer boş bırakırsanız bu kısım default olarak işleme alınacaktır. Eğer sadece stun ismiyle iş yapacaksanız yukarıdaki parametreyi kullanız, aksi taktirde fazladan veri ile belleği şişirmiş oluruz. bu veri her ne kadar küçük olsada çok büyüyecek bir sitede ilerde kendini hissetirmeye başlayacaktır. bu parametre sonucunda oluşacak array diziside bu şekilde:

Array
(
    [ismi] => Backgrounds
    [0] => Backgrounds
    [aciklama] => fisfisda fisfis
    [1] => fisfisda fisfis
)

Sonraki parametreleri tam olarak bilmiyorum ama üzerinden geçmekte fayda var.

PDO::FETCH_LAZY: Sonuçları array yerine PDORow Object yöntemi ile listeliyor, sorgu parametresinide queryString ismine atıyor. php.netdeki açıkmalası: Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak. Örnek çıktı aşağıdaki gibidir:

PDORow Object ( 
[queryString] => SELECT * FROM galeriler WHERE id = :gaid 
[id] => 3 
[ismi] => Backgrounds 
[aciklama] => Background displays can bring your computer screen to life. 
[userid] => 20 
)

PDO::FETCH_OBJ: Sonuçları stdClass Object şeklinde listeliyor, php.net deki açıklaması: Her özelliğin bir sütun ismine denk düştüğü bir anonim nesne olarak. Örnek çıktı aşağıdaki gibidir:

stdClass Object ( 
[id] => 3 
[ismi] => Backgrounds 
[aciklama] => Background displays can bring your computer screen to life.
[userid] => 20 
)

Ben genelde sorgularımı stun ismine göre çekiyorum. Böylece kafam karışmıyor ama uygulamanıza hangisi uygunsa ona görede diğer parametreleri kullanabilirsiniz. Yeni başlayanlar ve basit işlemler için kullanacak arkadaşlar için ilk parametreyi yani PDO:FETCH_ASSOC‘u öneririm.

PDO::FETCH_COLUMN: Select kısmında belirlenen sütunda bulunan bütün veriyi sayı dizgesi ile listeler. Eğer select kısmında ön tanımlı bir değer yoksa (*), birden fazla varsa ilk kolonu ele alarak listeleme yapar. Örnek dönen sonuç aşağıdaki gibidir:

Array (
[0] => mehmet cavus 
[1] => Anime 
[2] => Backgrounds 
[3] => Cars 
[4] => Colors 
[5] => Families 
[6] => Fashion 
[7] => Funny 
[8] => Just for Fun 
[9] => Love
)

PDO::FETCH_GROUP: Verileri belirlenen ilk sütuna göre gruplandırarak işlem yapar. Tek başına kullanıldığında ikinci tablonun isminin altına birde sayısal değeri ile ikinci veriyi ekler. sadece isim değerini alması için aynı parametreyi PDO::FETCH_ASSOC ile kullanmanızı öneriyorum yanı bu şekilde: PDO::FETCH_ASSOC|PDO::FETCH_GROUP

Bu parametreninde sonuçları örnekteki gibi olur:

Array (

[Anime] => Array ( 
[0] => Array ( 
[aciklama] => Search through all your favorite anime characters. 
) 
) 

[Backgrounds] => Array ( 
[0] => Array ( 
[aciklama] => Background displays can bring your computer screen to life. 
) 
) 

[Cars] => Array ( 
[0] => Array ( 
[aciklama] => Make a pit stop to check out everything about cars. 
) 
) 

[Colors] => Array ( 
[0] => Array ( 
[aciklama] => Search through unique images from all the colors of the rainbow… 
) 
) 

[Families] => Array ( 
[0] => Array ( 
[aciklama] => They are the cornerstones of our lives. Celebrate your family here. 
) 
)

)

PDO::FETCH_UNIQUE – Select alanındaki ilk tabloyu baz alarak benzersiz içerikleri listeler. Eski mysql de distintc ile aynı verileri eleyip sadece birini alıyorduk. PDO uygulamasında da işimizi kolaylaştıracak FETCH_UNIQUE parametresini kullanacağız. Yanlış hatırlamıyorsam PDO daki benzersiz kayıt parametresinin eskisine nazaran çok daha kullanışlı oluyor. Çünkü distinct de sadece belirtilen benzersiz kayıtları çekeceğimiz sütununa ait verileri alabiliyorduk. PDO daki bu parametre ile benzersiz kayıtları alacağımız sütun haricinde diğer sütunlarıda kolaylıkla çekebiliyoruz. Bu parametrenin yanında yine PDO::FETCH_ASSOC parametresiyle beraber kullanımı önereceğim, böylece sadece sayısal dizgeleri çekmeden hafif sonuçlar elde edebiliriz. Bu parametre örneğide aşağıdaki gibi olur:

PDO::FETCH_ASSOC|PDO::FETCH_UNIQUE parametrelerinin sonuçları:

array (size=51)
  'mehmet cavus' => 
    array (size=3)
      'aciklama' => string 'hhhh demi aciklamasi yeni buda..' (length=32)
      'id' => string '1' (length=1)
      'userid' => string '645' (length=3)
  'Anime' => 
    array (size=3)
      'aciklama' => string 'Search through all your favorite anime characters.' (length=50)
      'id' => string '2' (length=1)
      'userid' => string '20' (length=2)
  'Backgrounds' => 
    array (size=3)
      'aciklama' => string 'Background displays can bring your computer screen to life.' (length=59)
      'id' => string '3' (length=1)
      'userid' => string '20' (length=2)
  'Cars' => 
    array (size=3)
      'aciklama' => string 'Make a pit stop to check out everything about cars. ' (length=52)
      'id' => string '4' (length=1)
      'userid' => string '20' (length=2)

2 – Birden fazla veriyi çekme:
Yukarıdaki işlemleri anladıysanız bu kısmı çok kolayca kavrayacaksınız diye düşünüyorum, çünkü fazla bir ayrıntı yok. yukarıdaki sorgu kodumuzdan sadece fetch() kısmını fetchAll() olarak değiştirerek çoklu veri çekimleri için kullanacağız. Sonrasında çektiğimiz veriyi foreach yada while ile işleyebiliriz.

$veri1 = $dbpdo->query('SELECT * FROM galeriler');

print_r($veri1->fetchAll(PDO::FETCH_ASSOC));

Bu işlem sonunda ekrana tahmin edebileceğiniz gibi galeriler tablosundaki bütün veriler çekilecektir. Bunları foreach ile kolayca işleyebiliriz:

$veri1 = $dbpdo->query('SELECT * FROM galeriler');

$sonuc = $veri1->fetchAll(PDO::FETCH_ASSOC);

foreach($sonuc as $cek){

echo $cek["ismi"]."<br>";

}

Basit query ile select yöntemini işledik arkadaşlar. Daha profesyonel kullanım için PDO da bir çok fonksiyon bulunmakta. Şimdi size PDO da en çok sevdiğim ve bence eski mysql sorgularını bir daha kullanmamanıza neden olacak parametre: prepare

Detaylı prepare konusuna geçmeden önce hızlı şekilde silme,ekleme,güncelleme kodumuzu yazmak istiyorum. fonksiyonun adı exec(). Extra tanımlamalara gerek kalmadan hızlıaca işlemlerinizi yapmaya olanak veriyor. Bir kaç örnek vererek sizi bilgilendirip sonrada bunların daha detaylısı ve profesyonel yapıda olanı prepare kullanımına geçeceğim:

PDO::EXEC – Hızlı Veri silme

$sorgumuz = $dbpdo->exec("delete from galeriler where id = 235");

echo $sorgumuz; /*etkilenen satir sayisini verir - 1 ise silinmistir :) */

PDO::EXEC – Hızlı Veri güncelleme

$sorgumuz = $dbpdo->exec("update galeriler set ismi = 'mehmet cavus' where id = 1");

echo $sorgumuz; /*etkilenen satir sayisini verir - 1 ise silinmistir :) */

PDO::EXEC – Hızlı Veri ekleme

$sorgumuz = $dbpdo->exec("insert into galeriler(ismi) values('mehmet cavus yemenli')");

echo $sorgumuz; /*etkilenen satir sayisini verir - 1 ise silinmistir :) */

PDO::prepare:

Standart açıklama yerine kendi tecrübelerimi ve test sonuçlarımı paylaşacağım arkadaşlar. Büyük bir projeniz varsa yada aynı sorgunu sadece where alanındaki parametresi değişiyor diye 5-6 kere kullanmak zorunda kalıyorsanız, prepare komutu işlerinizi çok kolaylaştıracak hemde iş yükü zamanınızı çok düşürecek. Fazla kafa karıştırmadan bir kaç örnekle prepare kullanımını daha iyi anlamanıza vesile olayım.

PDO::PREPARE parametresini açıkmak için size bir örnek kod hazırladım:

$veri = $dbpdo->prepare('SELECT * FROM galeriler WHERE userid = :userid');

$veri->bindValue(':userid', 2, PDO::PARAM_INT); 
$veri->execute();
print_r($veri->fetchAll(PDO::FETCH_ASSOC)); /* userid 2 olan butun tabloları çeker */

echo "<hr>";

$veri->bindValue(':userid', 3, PDO::PARAM_INT);
$veri->execute();
print_r($veri->fetch(PDO::FETCH_ASSOC)); /* userid 3 olan ilk tabloyu (tek) çeker */

echo "<hr>";

$veri->bindValue(':userid', 20, PDO::PARAM_INT);
$veri->execute();
print_r($veri->fetchAll(PDO::FETCH_ASSOC)); /* userid 20 olan butun tabloları çeker */

/* her işlem ayrı ayrı çalışır, üstdeki ile bir bağı yoktur.. */

Yukarıdaki göreceğiniz gibi sadece bir sorgu cümlesi hazırladık ve alt tarafta 3 ayrı birbirinden farklı sonuç listeledik. Kafanız karışmasın arkadaşlar. alt alta yazdığınız her yeni kural üstdeki yani bir önceki kural ile alakası yoktur. Yaptığınız her execute() bir üstünde belirttiğiniz bindValue() parametresindeki kuralı işler. Böylece tek sorgu ile bir tablodaki 3 üyenin galerilerini ister birini, istersenizde hepsini ayrı ayrı çekmiş olduk.

Bunun bize getireceği kolaylıklar neler derseniz: Aynı anda tek bir sorgu cümlesini kullanarak güncelleme, silme, yada veri çekme yapabilirsiniz birdenf azla. Bu mantık işi, kullanabileceğiniz alanlar tamimiyle hayal gücünüze bağlı..

PDO::PREPARE komutu ile sadece veri çekme işi değil, silme, ekleme, güncelleme işlemleride yapabiliriz. PDO daki en iyi alanlardan birisi güvenlik uygulamalarınıda beraberinde kullanarak sistemimizi güven altına alabiliriz.

PDO::PREPARE ile veri ekleme:

Birden fazla yönetmi bulunmakla beraber kullanım alanınıza göre özelleştirebilirsiniz arkadaşlar.. İlk göstereceğim kullanım uygulamanın en kolayı olacak.

$yeniisim = "yeni galeri ismi";
$yeniaciklama = "galeri aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("INSERT INTO galeriler(ismi,aciklama) VALUES(:ismi,:aciklama)");

$sorgumuz->execute(array(':ismi' => $yeniisim, ':aciklama' => $yeniaciklama));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

Yukarıdaki sorguyu çalıştırdığınızda veritabanına yeni veri ekleyecektir ve geri olarak rowCount() parametresi ilede etkilenen yada eklenen veri sayısını verecektir bize.

Yukarıdaki veri ekleme yönetminin biraz farklı olanı ise sorguda soru işareti kullanabileceğimiz ve array kısmınıda sırakı değişkenler olarak atayabileceğimiz yöntem. Burda değişkenlerin sırasına dikkat edin, sırayla soru işaretlerinin olduğu yerlere atanmaktadır..

$yeniisim = "en yeni galeri ismi";
$yeniaciklama = "en galeri aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("INSERT INTO galeriler(ismi,aciklama) VALUES(?,?)");

$sorgumuz->execute(array($yeniisim, $yeniaciklama));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

İşi biraz daha büyütüp eklenecek veri güvenliğini en ideal şekilde kontrol edecek aşağıdaki gibi bir işlem yapabilirsiniz:

$yeniisim = "fyeni galeri ismi";
$yeniaciklama = "ggaleri aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("INSERT INTO galeriler(ismi,aciklama,userid) VALUES(:ismi,:aciklama,:userid)");

$sorgumuz->bindValue(':ismi', $yeniisim, PDO::PARAM_STR);
$sorgumuz->bindValue(':aciklama', $yeniaciklama, PDO::PARAM_STR);
$sorgumuz->bindValue(':userid', 24, PDO::PARAM_INT);

$sorgumuz->execute();

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

Ekleyeceğiniz her veriyi sorguya ekledikten sonra bindValue() paremetresi ilede eklenecek veriyi hazırlıyoruz. Son olarak execute() fonksiyonunu çalıştırdığımızda işlem çalışmaya başlauacak ve altda etkilenen satır sayısını verecektir..

PDO – Eklenen son verinin ID2sini alma:
INSERT işleminden sonra eklenen veriye ait ID’yi almak zorunda olabilirsiniz. Bu gibi durumlarda Aşağıdaki değişken bize eklenen son verinin ID’sini verecektir..

$sorgumuz = $dbpdo->exec("insert into galeriler(ismi) values('mehmet cavus yemenli')");

echo $sorgumuz . "<br>"; /*etkilenen satir sayisini verir - 1 ise silinmistir :) */
echo $dbpdo->lastInsertId(); /* Eklenen son verinin ID si. */

PDO::PREPARE fonksiyonu ile silme, ekleme, güncelleme gibi işlemleride yukarıdaki gibi yapabiliyornuz. Konuyu anladığınızı düşünüyorum prepare kısmında fazla detaya girmeden kısa kısa örneklerle bilgilerimizi pekiştirelim.

PDO::PREPARE – Tablodaki verileri Güncelleme:

PDO da farkeden tek şey mysql standart fonksiyonları yerine PDO class yapısını ve ek olarak ekleyeceğimiz verileri ayrı bir alanda işleyerek yapmamızdır. Bunun güvenilirliği konusunda tecrübem yok ancak yapı itibari ile bunun hazırlanmış olduğunu düşünüyorum. Örnek bir veri güncelleme yapısı:

$yeniisim = "fyeni galeri ismi";
$yeniaciklama = "ggaleri aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("update galeriler set ismi = :ismi ,aciklama= :aciklama,userid=:userid WHERE id = :id");

$sorgumuz->bindValue(':ismi', $yeniisim, PDO::PARAM_STR);
$sorgumuz->bindValue(':aciklama', $yeniaciklama, PDO::PARAM_STR);
$sorgumuz->bindValue(':userid', 241, PDO::PARAM_INT);
$sorgumuz->bindValue(':id', 1, PDO::PARAM_INT);

$sorgumuz->execute();

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

Bu alandaki veri güncelleme yöntemlerini aşağıda sırasıyla veriyorum:

2. Farklı yöntem:

$yeniisim = "yenidir daaa";
$yeniaciklama = "demi aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("update galeriler set ismi = :ismi ,aciklama= :aciklama,userid=:userid WHERE id = :id");

$sorgumuz->execute(array(':ismi' => $yeniisim, ':aciklama' => $yeniaciklama,':userid' => 542, ':id' => 1));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

3. Farklı yöntem:

$yeniisim = "Baska yenidir daaa";
$yeniaciklama = "baska demi aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("update galeriler set ismi = ? ,aciklama= ?,userid=? WHERE id = ?");

$sorgumuz->execute(array($yeniisim, $yeniaciklama,542, 1));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

4. Farklı yöntem: Standart değişkenleri sorgu içinde belirtmek, ancak kullanışlı değil, yukarıdaki yöntemlerden birini tercih etmenizi öneririm:

$yeniisim = "gggg yenidir daaa";
$yeniaciklama = "hhhh demi aciklamasi yeni buda..";

$sorgumuz = $dbpdo->prepare("update galeriler set ismi = '".$yeniisim."' ,aciklama= '".$yeniaciklama."', userid='645' WHERE id = '1'");

$sorgumuz->execute();

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

PDO::PREPARE – Tablo silmek

Tablo silmek prepare ile çok kolay, ayrıca bu fonksiyonun ilk başlarda anlattığım özelliği ile aynı anda birden fazla farklı tabloyu silebiliyoruz. bunu yaparken sorguğu defalarca değiştirmemize gerek kalmıyor. Küçük bir mantık yürütmek gerekirse toplu olarak silmek istediğiniz yada sitenizde bu özelliği eklemek istediğiniz alana gelen veriyi sadece foreach alanında execute kullanarak kodlama kalabalığı yapmadan halledebiliriz. Ben küçük bir mantık yürüttüm, ihtiyaçlara göre hayal gücümüz dahada farklı yorumlar bulacaktır.

ÖRnek bir tablo silme kodu:

$sorgumuz = $dbpdo->prepare("delete from galeriler where id = :id");

$sorgumuz->bindValue(':id', 240 , PDO::PARAM_INT);

$sorgumuz->execute();

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

id si 240 olan tablo tarih oldu şuanda… Kodlamada bir kaç ekleme yaparak aynı anda bir kaç tabloyu silebiliriz. sorgu cümlesini değiştirmeden:

$sorgumuz = $dbpdo->prepare("delete from galeriler where id = :id");

$sorgumuz->bindValue(':id', 240 , PDO::PARAM_INT);
$sorgumuz->execute();

$sorgumuz->bindValue(':id', 230 , PDO::PARAM_INT);
$sorgumuz->execute();

$sorgumuz->bindValue(':id', 220 , PDO::PARAM_INT);
$sorgumuz->execute();

$sorgumuz->bindValue(':id', 210 , PDO::PARAM_INT);
$sorgumuz->execute();

$etkilenen_veri_sayisi = $sorgumuz->rowCount(); //son sorgu icin bilgi verecektir, her execute den sonra eklerseniz o islem içinde bilgi verir..

echo $etkilenen_veri_sayisi;

Bir başka veri silme kodu. değişkenleri direk execute() parametresine ekleriz:

$sorgumuz = $dbpdo->prepare("delete from galeriler where id = :id");

$sorgumuz->execute(array(':id' => 239));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

Buda diğer bir basit veri silme kodumuz:

$sorgumuz = $dbpdo->prepare("delete from galeriler where id = ?");

$sorgumuz->execute(array(238));

$etkilenen_veri_sayisi = $sorgumuz->rowCount();

echo $etkilenen_veri_sayisi;

Sormak istediklerinizi yada önerilerinizi konu altından yorum atabilirsiniz. Bu konuda yeni dökumanları zaman içerisinde tekrar yazacağım. Türk geliştiricilerinin PDO sistemine geçmesini şiddetle öneriyorum. Gelecek herzaman yeni teknolojilere çabuk atapde olabilenlerin olacaktır.

Sağlıcakla kalın..

Kategoriler
Php ve mysql Webmaster yardım Wordpress

WordPress degisikliklerinde eski yorumlarinizi yeni siteye ekleme!

Arkadaslar bazi durumlarda kullandiginiz wordpress i degistirmek istersiniz. Bu nhasil olur ? iki farkli domaininiz vardir, birinde kisisel digerinde de farkli alanda yazilarinizi barindirirsiniz. Tarihin birinde de artik bir tanesini birakip tek siteyle devam etmek istediginizi anlarsiniz. bu durumda yazilarinizi yeni siteye manuel olarak eklersiniz ancak yorumlar cok fazlaysa ve manuel sql sorgusu ile eklemek cok zahmetli geleceginden bu yazimda 2 saniyede bunu nasil yapacaginizi anlatacagim.

Yapacagimiz islem hazirlik asamasi 5 dk, uygulamaya alma asamasi da1 dk olarak 2 ayri kisimda olacaktir. bunlardan ilki Eski db de bulunan yorumlar tablosunu farkli bir on ek ile yeni databaseye eklemek, sql sorgusu icinde php dosyasini hazirlamak olacaktir. 2 kisimda ise bunu calistirip kontrol etmek kalacaktir geriye..

Burda unutmamaniz gereken konu, devap olarak eklenen yorumlar eskisi gibi cevap seklinde degil normal sekilde gorunecektir. cunku yeni db ye eski yorumlari eklerken otomatik yeni ID almasini sagliyoruz, burada da ID lerfkli olacagindan cevap ozelligini yorumlari cektiginiz konu icin yok saymaniz gerek :)

Baslamadan once iki databaseyide mutlaka yedek almayi unutmayin.

Phpmyadminden eski websitenizin databasesini acin ve sadece bu tabloyu bilgisayariniza indirin: comments (eger on ek kullanmis iseniz onu indirin, default wp_comments seklinde de olabiliyor)

* Inen dosyayi acip icerisindeki comments tarisinin onundeki takiyi yada komple ismi duzenleyin.

* Yeni DBnizin oldugu tabloya yukleyin.

* Ardindan asagidaki php sorgusunu yeni wordpress’inizin root dizininde bir php dosyasina ekleyin, kendinize gore duzenleyin.

< ?php

include_once "mysql/ez_sql_core.php";
include_once "mysql/ez_sql_mysql.php";

$kullanici="DB-kullanici-adin";
$parola="sifren";
$DBCIK="DB-adin";
$sunucu="localhost";

$db = new ezSQL_mysql($kullanici,$parola,$DBCIK,$sunucu);
$db->query("SET NAMES utf8");

$eskisitekonuyorumid = "202";
$yenisitekonuyorumid = "1459";

$sonuclar = $db->get_results("SELECT * FROM ESKI_comments where comment_post_ID='$eskisitekonuyorumid'");

foreach ( $sonuclar as $sonuc )
{

$comment_post_ID = $yenisitekonuyorumid;
$comment_author = $sonuc->comment_author;
$comment_author_email = $sonuc->comment_author_email;
$comment_author_url = $sonuc->comment_author_url;
$comment_date = $sonuc->comment_date;
$comment_content = mysql_real_escape_string(stripslashes($sonuc->comment_content));
$comment_approved = $sonuc->comment_approved;
$comment_agent = $sonuc->comment_agent;
$comment_type = $sonuc->comment_type;
$user_id = $sonuc->user_id;

$query = $db->query("INSERT INTO wp_comments(
comment_post_ID,
comment_author,
comment_author_email,
comment_author_url,
comment_date,
comment_content,
comment_approved,
comment_agent,
comment_type,
user_id
) VALUES (
'$comment_post_ID',
'$comment_author',
'$comment_author_email',
'$comment_author_url',
'$comment_date',
'$comment_content',
'$comment_approved',
'$comment_agent',
'$comment_type',
'$user_id'
)");

if($query) {
echo "basarili oldu - ".$sonuc->comment_ID." = ".$sonuc->comment_content."

"; }else{ echo "basarisiz oldu - ".$sonuc->comment_ID." = ".$sonuc->comment_content."

"; } } ?>

Sirasiyla duzeltmeniz gereken yerleri yazacagim:
1: $eskisitekonuyorumid = Yorumlarini almak istediginiz konunun eski sitedeki ID si
2: $yenisitekonuyorumid = Yorumlari eklemek istediginiz konunun yeni sitedeki ID si
3: ESKI_comments = Eski yorumlarin oldugu ve yeni konuya ekleyeceginiz yorumlarin bulundugu tablo ismi (indirdigimiz)
4: wp_comments = Yorumlarin eklenecegi yeni tablo ismimiz.

Sistemde EZsQL ile calistigimdan buradaki ezsql dosyalarini indirip php dosyasinin oldugu yere yukleyin (klasorle beraber)

Dosyalarda yerli yerine yuklendikten sonra kodlarin bulundugu php dosyasini webtarayicinizda acin ve basarili yada basarisiz sonuclari takip edin. Genelde butun sonuclar basarili sekilde listeleniz. Ancak sorun varsa uyari verefcektir. Bu durumda konu altina yorum duserseniz sorunu anlayip yardimci olmaya calisirim..

Yardimci olmasi umidiyle, basarilar..

Kategoriler
Php ve mysql

php mysql islemleri – ekleme, silme, duzenleme, listeleme !!

php2ek5arkadaslar bunu uzun zamandir yapmak istiyordum php konusunda

kendini gelistirmek isteyen arkadaslar icin guzel bir dokuman olacak eminim.. oncelikle dokuman su ana kadarki son sistemlerde denenmistir ve sorun gorulmemistir, (php 5 …), kullandigim vista sisteminde de denedim, localde yani.. dokuman gelistirilmeye acik, sorun olursa konu altinda yorum yazarak yardim alabilirsiniz.

aragida anlatilan kodlar kullanilarak gelistirilmeye baslanan bir veb sitesi ve temasi demosu:
Demo silinmistir :s
Yukaridaki demo’nun Kaynak dosyalari download:
http://www.kuaza.com/kuaza-tema-arsivi-f193/php-islemlerini-yapabilen-yeni-tema-50-bitti-t2244.html

yukaridaki link kuaza tema arsivi icin hazirlanan bir iceriktir, gelistirilmeye devam edilmektedir..
gorus ve onerilerinizi yazabilirsiniz..

simdi gel gelelim okumanimizin baslangicina oncelikle kendimize bir veritabani olusturuyoruz ve asagidaki bilgileri veri tabanindan olusturdugumuz veritabanina yukluyoruz..


CREATE TABLE `not_defteri` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `baslik` varchar(255) NOT NULL,
  `aciklama` varchar(255) NOT NULL,
  `resim` varchar(255) NOT NULL,
  `ekleyen` varchar(255) NOT NULL,
  `tarih` varchar(255) NOT NULL,
  `k_site` varchar(255) NOT NULL,
  `k_url` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=67 ;


— Tablo döküm verisi `not_defteri`

INSERT INTO `not_defteri` (`id`, `baslik`, `aciklama`, `resim`, `ekleyen`, `tarih`, `k_site`, `k_url`) VALUES
(1, ‘maffay’, ‘maffay hakkinda hersey :)’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 1’, ‘kuaza.com’),
(2, ‘baba nerdesin soyle’, ‘Bu site paylaşılan dosyaları içerisinde barındırmamaktadır,
dosyalar farklı kaynaklardan derlenip paylasılmaktadır ve sorumlulukları
tamamen kaynaklarına aittir.Hak sahibinin talebi durumunda paylasımlar
derhal sitemizden kaldırılacaktır.
Sitede verilen lin’, ‘http://www.kuaza.com/out/i45812_kk.jpg ‘, ‘pala’, ‘2009’,
‘bir kuaza olusumudur :)’, ‘kuaza.com’),
(3, ‘Baslik 3’, ‘Modern Kristallitler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 3’, ‘kuaza.com’),
(4, ‘Baslik 4’, ‘Masa Lambalari’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 4’, ‘kuaza.com’),
(5, ‘Baslik 5’, ‘Aplikler’, ‘resim.png’, ‘kuaza’, ‘2008’, ‘site 5’, ‘kuaza.com’),
(48, ‘ne basligi’, ‘dfgdfgdfgdfgdfg’, ‘sdfsdfsd’, ‘fsdf’, ‘sdfsd’, ‘fsdf’, ‘sdfsd’),
(47, ‘kuaza.net php dersleri’, ‘aciklama icin zaman yok be guzelim’,
‘http://www.kuaza.com/out/i45657_image0011hk3rq3fb2iswp2.jpg’, ‘maffay61’,
’11-2-2008′, ‘ucretsiz resim yukleyin’, ‘kuaza.com’),
(66, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’, ‘Sonuçları şşüü’,
‘Sonuçları şşüü’);

 

sonrasinda baglanti bilgilerimizi iceren sayfamizi hazirlayalim…

baglan.php


<?PHP

$conn mysql_connect("localhost""root""");

if (!$conn) {
    echo 
"Unable to connect to DB: " mysql_error();
    exit;
}
  
if (!
mysql_select_db("deneme")) {
    echo 
"Unable to select mydbname: " mysql_error();
    exit;
}
mysql_query ("SET NAMES ‘latin5’ ");
?>

 

bu yukaidaki bilgileri kendinize gore gerekli yerlerini duzenleyin.. veri tabanina baglantimiz basarili olacaktir, sonrasinda ilk sayfamiz listeleme sayfamiz olsun, index sayfasinda veritabanimizdan gelen bilgileri listeleyelim..

k_index.php


<?PHP
require_once(‘baglan.php’);
?>
<table width="800px">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
</tr>
<?php

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

// While a row of data exists, put that row in $row as an associative array
// Note: If you’re expecting just one row, no need to use a loop
// Note: If you put extract($row); inside the following loop, you’ll
//    then create $userid, $fullname, and $userstatus

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>

<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki listeleme sayfasina dikkat ederseniz oncelikle baglan.php sayfasini sayfamiza cagirdik sonrasinda gelen bilgileri degiskenlere atadik, ve alt tarafindaki tablolara yansittik..

simdide ekleme silme ve duzenleme sayfamizi yapalim..

k_islem.php


<style type="text/css">
<!–
.style1 {
    color: #FF8040;
    font-weight: bold;
}
–>
</style>
<form action="k_ekle.php" method="POST">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45"></textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>
<table width="0">
<tr>
<td bgcolor="gray">Sira</td>
<td bgcolor="gray">baslik</td>
<td bgcolor="gray">aciklama</td>
<td bgcolor="gray">resim</td>
<td bgcolor="gray">ekleyen</td>
<td bgcolor="gray">tarih</td>
<td bgcolor="gray">Site</td>
<td colspan="2" bgcolor="gray">islem</td>
</tr>

<?PHP
require_once(‘baglan.php’);

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;

$result mysql_query($sql);

if (!$result) {
    echo 
"Could not successfully run query ($sql) from DB: " mysql_error();
    exit;
}

if (mysql_num_rows($result) == 0) {
    echo 
"No rows found, nothing to print so am exiting";
    exit;
}

while ($row mysql_fetch_assoc($result)) {
    

$id=$row[‘id’];
$baslik=$row[‘baslik’];
$aciklama=$row[‘aciklama’];
$resim=$row[‘resim’];
$ekleyen=$row[‘ekleyen’];
$tarih=$row[‘tarih’];
$k_site=$row[‘k_site’];
$k_url=$row[‘k_url’];

?>

<tr><td><?php echo "$id"?></td>
<td> <?php echo "$baslik"?></td>

<td> <?php echo "$aciklama"?></td>
<td> <a href="<?php echo "$resim"?>" /> Resmi gormek icin tiklayin</a></td>
<td> <?php echo "$ekleyen"?></td>
<td> <?php echo "$tarih"?></td>
<td> <a href="http://<?php echo "$k_url"?>"><?php echo "$k_site"?></a></td>
<td> <a href="k_duzenle.php?id=<?php echo "$id"?>">Duzenle</a></td>
<td> <a href="k_sil.php?id=<?php echo "$id"?>">Sil</a></td>
<?php 

}

mysql_free_result($result);
?>
</tr>
</table>

 

yukaridaki islem sayfamizda da oncelikle ekleme bolumu yaptik ve hemen altinada veritabanindaki bilgileri listeleyerek duzenleme ve silme alanlari ekledik, bu sekilde listelenen bilgileri duzenleme ve silme linklerini kullanarak islem yapabilecegiz..

———-
Listelemeyi Sondan Baslayarak yapmak icin asagidakileri uygulamaniz yeterlidir:

Bunu

butun

kodlarinizda,

k_index.php

icin ve

k_islem.php

icinde kullanabilirsiniz.

 

listeleme islemini sondan baslayarak yapmak icin bu komutu kullanacagiz:

ORDER by id DESC

yani listeleme sayfamiz olan

k_islem.php

, sizinkini bilmiyorum herneyse, bu sekildeki kodlari:


$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    WHERE  id"
;     

bu sekilde degistirecegiz:

$sql "SELECT id as id, baslik, aciklama, resim, ekleyen, tarih, k_site, k_url 
    FROM   not_defteri
    ORDER by id DESC"
;     

yani sorgu sonundaki

WHERE id

degerine bununla degistirdigimizde :

ORDER by id DESC

Siralamayi sondan baslatarak yaptirmis oluyoruz…

——–

ama once eklemek istedigimiz bilgilerin gidecegi ve veritabanina eklenmesini saglayan sayfamizi olusturmaya..

k_ekle.php


<?PHP
require_once(‘baglan.php’);
?>

<?php

# güvenli form ç?kt?lar?
$baslik  strip_tags(htmlspecialchars(mysql_real_escape_string

($_POST["baslik"])));
$aciklama strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["aciklama"])));
$resim  strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["resim"])));
$ekleyen strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["ekleyen"])));
$tarih strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["tarih"])));
$k_site strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_site"])));
$k_url strip_tags(htmlspecialchars(mysql_real_escape_string
($_POST["k_url"])));

if(($baslik=="") or ($aciklama=="") or ($resim=="") or ($ekleyen=="") or ($tarih=="") or
 (
$k_site=="") or ($k_url=="")){
echo 
"Lutfen bos alan birakmayiniz<br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;
}else{

# kay?t sorgusu
$query mysql_query("INSERT INTO not_defteri 
(baslik,aciklama,resim,ekleyen,tarih,k_site,k_url) 
VALUES (‘$baslik’,’$aciklama’,’$resim’,’$ekleyen’,’$tarih’,’$k_site’,’$k_url’)"
);

# kontrol ediliyor
if($query) {
echo 
"kayit tamam";
echo 
"<br /><a href=’k_islem.php’>
geriye donerek islemlere devam edebilirsiniz</a>"
;
} else {
echo 
"kayit tamamlanamadi <br />
<a href=’k_islem.php’>Tekrar Denemek icin geri donebilirsiniz</a>"
;

}
}
?>

 

gordugunuz gibi ilk basta gelen verinin guvenirliligini kontrol ettik, ve ilerde gelebilecek aciklaara karsi veritabanina eklenen bilgileri sinadik..

 

sira geldi duzenleme sayfamizin yapimina gelen veriyi duzenlemek icin yukaridaki sayfada(k_islem.php) listeledigimiz veritabani id lerine duzenle linki eklemistirk, bu duzenle linkine tikladiktan sonra duzenleme yapacagimiz sayfayi olusturalim..

k_duzenle.php


<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
</head><?PHP
require_once(‘baglan.php’);
?>

   <?php 

# Once bilgileri al
$id=(int)$_GET[‘id’];

$sorgu=mysql_query("select * from not_defteri where id=’$id’");
$bilgi mysql_fetch_array($sorgu); 

echo ‘<form method="POST" action="k_baglan_duzenle.php">
<table width="439" border="0">
  <tr>
    <td width="53" height="32"><span class="style1">Bolumler</span></td>
    <td width="370">&nbsp;<span class="style1">Doldurulmasi Zorunlu Alanlar</span></td>
  </tr>
<input type="hidden" name="id" value="’
.$id.‘">
  <tr>
    <td>Baslik</td>
    <td><input name="baslik" value="’
.$bilgi[baslik].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>aciklama</td>
    <td><textarea name="aciklama" rows="10" cols="45">’
.$bilgi[aciklama].

</textarea></td>
  </tr>
  <tr>
    <td>Resim</td>
    <td><input name="resim" value="’
.$bilgi[resim].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Ekleyen</td>
    <td><input name="ekleyen" value="’
.$bilgi[ekleyen].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Tarih</td>
    <td><input name="tarih" value="’
.$bilgi[tarih].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site ismi</td>
    <td><input name="k_site" value="’
.$bilgi[k_site].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>Site url</td>
    <td><input name="k_url" value="’
.$bilgi[k_url].‘" type="text"/ size="60"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td><input type="submit" value="Ekle"/></td>
  </tr>
</table>
</form>’
;  ?> 
</html>

 

en basa yazdigimiz html karakter seti komutu veritabanindan gelen tr karakterli bilgilerin bozuk cikmamasini saglamak ;;

sonrasinda k_islem.php sayfasindan gelen id yi get metoduyla aldik ve o id deki bilgileri listeledik..

listeleme isleminden sonra yaptigimiz degisikliklerin veritabanina kaydedilmesi icin bize bir de bu bilgilerin yollandigi update sayfasi lazim, gelin simdi bunu yapalim..

k_baglan_duzenle.php


  <?PHP
require_once(‘baglan.php’);
?>
<?php
$id
=$_POST["id"];
$baslik=$_POST["baslik"];
$aciklama=$_POST["aciklama"];
$ekleyen=$_POST["ekleyen"];
$resim=$_POST["resim"];
$tarih=$_POST["tarih"];
$k_site=$_POST["k_site"];
$k_url=$_POST["k_url"];

$guncelle=mysql_query("update not_defteri SET 

baslik=’$baslik’,aciklama=’$aciklama’,
ekleyen=’$ekleyen’,resim=’$resim’,tarih=’$tarih’,k_site=’$k_site’,
k_url=’$k_url’ where id=’$id’");

if($guncelle) {

echo "guncelleme basarili oldu<br />
<a href=’k_islem.php’>geriye donerek islemlere devam edebilirsiniz</a>"
;
}else{
echo 
"guncelleme basarisiz oldu";
}
?>

bir ocneki sayfamizdan k_duzenle.php sayfamizdan yani gelen bilgileri degiskenlere atadik, ve sonrasinda update komutunu kullanarak veritabanina eklettirdik..

duzenleme sayfamizda bitmistir simdi gelelim silme sayfamiza..

daha once k_islem.php sayfasindan sil linki eklemistik, buna tiklayarak sil komutunu yapmamiz icin bize gerekli olan son sayfada,

 

k_sil.php


<?php
require_once(‘baglan.php’);

$id=$_GET["id"];
echo 
"$id";
$sil=mysql_query("delete from not_defteri where id=’$id’");
if(
$sil){
echo 
"silme islemi basarili";
}else{
echo 
"silme islemi basarisiz";
}
?>

yukaridaki komutlada get metoduyla gelen id yi degiskene atadik ve degiskeni delete kodu kullanarak veritabanindan sildik..

islem bu kadar arkadaslar, sorulariniz olursa cekinmeyin sorun..

vista kullaniyorum localhostta sorunsuz bir sekilde calisiyor, sizde denemelerini yapmak icin yukaridaki dokumanlari kullanabilirsiniz..