Mysql’de tekrarlayan kayıtların silinmesi

Diğer, mysql Yorum Yok »

Mysql veritabanınızda bulunan bir tablodaki tekrarlayan kayıtları temizlemek/silmek istiyorsanız aşağıdaki yöntemi kullanabilirsiniz.

1. Öncelikle geçici bir tablo oluşturalım :

CREATE TABLE gecici_tablo LIKE asil_tablo

2. Oluşturduğumuz geçici tabloya tekil kayıtları aktaralım :

INSERT INTO gecici_tablo SELECT DISTINCT * FROM asil_tablo

3. Eski tablomuzu kaldıralım :

DROP TABLE asil_tablo

4. Geçici tablomuzun adını değiştirelim :

RENAME TABLE gecici_tablo TO asil_tablo

Php’de hızlı ve kolay SQL sorguları için ezSQL

mysql, php 1 Yorum »

Php ile proje geliştiren herkesin mutlaka veritabanıyla az veya çok mutlaka işi oluyordur. En ufak veritabanı işlemi için bile bir kaç satır kod yazmak gerekir.

$sorgu = "SELECT * FROM projeler WHERE aktif='E' ";
$sonuc = mysql_query($sorgu);
if (mysql_num_rows($sonuc) > 0)
{
  $veri = mysql_fetch_object($sonuc);
}

Bir şekilde bu kodları uğraşıp yazmış olsak bile ileride projemiz için kullandığımız veritabanı uygulamasını değiştirmek istediğimizde bütün veritabanı kodlarında php komutlarını belli bir veritabanı uygulamasına göre kullandığımız için neredeyse tüm kodları yeniden yazmamız gerekecektir. (mysql_query, mysql_fetch_object gibi)

Peki ne yapmalıyız?

Hem kod yazımını kolaylaştırmak hemde düzgün bir kod yapısı sağlamak hemde ileriye dönük bir kod yapısı kurmak için özel bir veritabanı sınıfı veya fonksiyonlar kullanılabilir. Bu yapıyı ister kendiniz oluşturun isterseniz hazır kütüphanelerden faydalanın. Ama mutlaka böyle bir yapı kullanın.

ezSQL

ezSQL size böyle bir yapıyı kolayca kullanabileceğiniz bir şekilde sunuyor. Bir çok veritabanı programını destekliyor ezSQL. Aynı zamanda wordpress’in veritabanı sınıfı olan wpdb ezSQL kullanılarak geliştirilmiştir.

Yukarıdaki veritabanı işlemlerini ezSQL ile yazmak istesek aşağıdaki gibi bir satır yeterli olacaktır.

$veri = $db->get_row("SELECT * FROM projeler WHERE aktif = 'E' ");

Bu kadar basit :)

ezSQL Kullanımı

Öncelikle bu adresten ezSQL kütüphanesini indiriyoruz. İndirdiğiniz zip dosyasını proje dizinine açın. ezSQL’i projemizde kullanabilmel için iki dosyaya ihtiyacımız var birincisi ezSQL çekirdek dosyası (ez_sql_core.php) diğeri ise kullandığımız veritabanı uygulamasına ait dosya. (mysql için ez_sql_mysql.php)

Şimdi veritabanı işlemleri için ezSQL nesnesini oluşturalım.

include_once "ez_sql/shared/ez_sql_core.php";
include_once "ez_sql/mysql/ez_sql_mysql.php";
$db = new ezSQL_mysql('db_user','db_password','db_name','db_host');

Artık $db nesnesini kullanarak tüm veritabanı işlemlerimizi gerçekleştirebiliriz.

Sorgu örnekleri

Tabloya kayıt ekleme. Bu metod geriye Insert ID’yi döndürür.

$db->query("INSERT INTO projeler (id, proje_adi, baslangic_tarihi, aktif) VALUES (NULL,'ezSQL Sınıfı', NOW(), 'E')");

Kayıt güncelleme.

$db->query("UPDATE projeler SET aktif = 'H' WHERE id= '5' ");

Tek satır veri alma

$veri = $db->get_row("SELECT proje_adi, baslangic_tarihi FROM projeler WHERE id = 5");
 
echo $user->name;
echo $user->email;

Tek bir değer alma

$deger = $db->get_var("SELECT count(*) FROM projeler WHERE aktif= 'E' ");
 
echo $deger;

Birden fazla satır kayıt alma

$sonuclar = $db->get_results("SELECT proje_adi, baslangic_tarihi FROM projeler");
 
foreach ( $sonuclar as $veri )
{
  echo $veri->proje_adi;
  echo $veri->baslangic_tarihi;
}

Diğer örnekler ve daha detaylı bilgi için burayı kullanabilirsiniz.

Umarım projelerinizi daha kolay ve hızlı bir şekilde yürütmenizi sağlayacak bir yazı olmuştur.

Update sorgularında “join” ve “replace”

mysql 1 Yorum »

Birden fazla tablodaki kontrollere göre yapacağınız bir update sorgusunu aşağıdaki gibi oluşturabilirsiniz.

UPDATE 	tablo1
	INNER JOIN tablo2 ON tablo1.id=tablo2.id AND tablo2.sehir_id='34'
	SET tablo1.metin=REPLACE(tablo1.metin,'İst.','İstanbul')
	WHERE tablo1.metin LIKE "%İst.%"

Bu sorgu ile tablo2 ile joinlenen tablo1′deki metin alnında replace komutu ile değişiklik yapılıyor.

Lampforweb 2007 Tüm hakları saklıdır. Tema N.Design Studio
İçerik RSS Yorum RSS Giriş