Archive for the 'MySQL' Kategori

PHP ile Çok Basit Bir "Ziyaretçi Defteri Örneği" yapalım.

Veritabanı tablomuz :

SQL:
  1. CREATE TABLE IF NOT EXISTS `ziyaretci` (
  2.   `id` int(11) NOT NULL AUTO_INCREMENT,
  3.   `ad` varchar(60) NOT NULL,
  4.   `soyad` varchar(60) NOT NULL,
  5.   `email` varchar(255) NOT NULL,
  6.   `yorum` text NOT NULL,
  7.   `tarih` date NOT NULL,
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE=MyISAM  ;

PHP kodlarımız:

PHP:
  1. <?php
  2. # form gonderidldi mi?
  3. if(!empty($_POST)){
  4.     # evet, formu gondermiş, kayit işlemini yap
  5.  
  6.     mysql_connect("localhost","root","");
  7.     mysql_select_db("kurs");
  8.  
  9.     $ad = addslashes($_POST['ad']);
  10.     $soyad = addslashes($_POST['soyad']);
  11.     $email = addslashes($_POST['email']);
  12.     $yorum = addslashes($_POST['yorum']);
  13.  
  14.     $tarih = date("Y-m-d"); # 2010-12-31
  15.  
  16.     $SQL = "INSERT INTO ziyaretci SET ad='$ad', soyad='$soyad', email='$email', yorum='$yorum', tarih='$tarih' ";
  17.  
  18.     $sorgu = mysql_query($SQL);
  19.  
  20.     echo "<font color='blue'> Kayıt yapıldı. Teşekkür ederiz... </font>";
  21. }
  22. ?>
  23.  
  24. <FORM METHOD=POST ACTION="">
  25.  
  26. <TABLE>
  27. <TR>
  28.     <TD>Ad</TD>
  29.     <TD>:</TD>
  30.     <TD><INPUT TYPE="text" NAME="ad"></TD>
  31. </TR>
  32. <TR>
  33.     <TD>Soyad</TD>
  34.     <TD>:</TD>
  35.     <TD><INPUT TYPE="text" NAME="soyad"></TD>
  36. </TR>
  37. <TR>
  38.     <TD>Email</TD>
  39.     <TD>:</TD>
  40.     <TD><INPUT TYPE="text" NAME="email"></TD>
  41. </TR>
  42. <TR>
  43.     <TD>Yorum</TD>
  44.     <TD>:</TD>
  45.     <TD><TEXTAREA NAME="yorum" ROWS="5" COLS="45"></TEXTAREA></TD>
  46. </TR>
  47. <TR>
  48.     <TD></TD>
  49.     <TD></TD>
  50.     <TD><INPUT TYPE="submit" value="Kaydet"></TD>
  51. </TR>
  52. </TABLE>
  53.    
  54. </FORM>
  55.  
  56. <BR><BR><BR><BR>
  57.  
  58. <?php
  59.  
  60. $SQL="SELECT * FROM ziyaretci ORDER BY id DESC";
  61. $sorgu = mysql_query($SQL);
  62.  
  63. echo "<table border=1>";
  64.  
  65. $ii=0;
  66.  
  67. while( $sira=mysql_fetch_object($sorgu) ){
  68.        
  69.         $ii = $ii + 1;
  70.         if($ii % 2 == 0){
  71.             $bgcolor="#FFFF00";
  72.         }
  73.         if($ii % 2 == 1){
  74.             $bgcolor="#00FF00";
  75.         }
  76.  
  77.        
  78.        
  79.         echo "<tr bgcolor='$bgcolor'>";
  80.             echo "<td> $sira->id </td>";
  81.             echo "<td> $sira->ad </td>";
  82.             echo "<td> $sira->soyad </td>";
  83.             echo "<td> $sira->email </td>";
  84.             echo "<td> $sira->yorum </td>";
  85.             echo "<td> $sira->tarih </td>";
  86.         echo "</tr>";
  87. }   
  88. echo "</table>";
  89.  
  90. ?>

UPDATE urun SET desc_urun = TRIM(TRAILING '<LI><A href="http:' FROM desc_urun) WHERE urun_id='5656' LIMIT 1;

bu sorgu ile ürün açıklamasının sonunda yer alan hatalı html tagini siliyoruz. sadece hatalı olan ve sonda olan "<LI><A href="http:' FROM desc_urun" yi silecek.

PHP Telefon Rehberi Örneği Kodlar + Veritabanı şeklinde indirebilirsiniz.

İndir : php-telefon-rehberi.rar

update icerik_yeni SET baslik=REPLACE(baslik,'ð','ğ');
update icerik_yeni SET baslik=REPLACE(baslik,'Ý','İ');
update icerik_yeni SET baslik=REPLACE(baslik,'ý','ı');
update icerik_yeni SET baslik=REPLACE(baslik,'þ','ş');
update icerik_yeni SET baslik=REPLACE(baslik,'Þ','Ş');
update icerik_yeni SET baslik=REPLACE(baslik,'Ð','Ğ');

2009 Yerel seçimleri bize yaradı :) Güncel ilçeler veritabanı ihtiyacı olanlar bunları kullanabilir.

PHP:
  1. <?php
  2. /*
  3. DROP TABLE IF EXISTS `ilceler`;
  4. CREATE TABLE  ``ilceler` (
  5.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  6.   `il_id` int(10) unsigned NOT NULL DEFAULT '0',
  7.   `ilce` varchar(255) NOT NULL DEFAULT '',
  8.   PRIMARY KEY (`id`)
  9. ) ENGINE=InnoDB AUTO_INCREMENT=974 DEFAULT CHARSET=utf8;
  10. */
  11.  
  12. mysql_connect("localhost","root","");
  13. mysql_select_db("ililce");
  14.  
  15. $SQL="SET NAMES 'utf8' ";
  16.  
  17. for ($ii=1;$ii<82;$ii++) {
  18.     $f = file_get_contents("http://www.milliyet.com.tr/Secim2009/api/belediyelist.ashx?sehirid=".$ii);
  19.    
  20.     $t1 = explode(";",$f); # 197#Tatvan
  21.    
  22.     foreach ($t1 AS $key=>$val) {
  23.        
  24.         $t2 = explode("#",$val);
  25.         $ilce=$t2[1];
  26.                
  27.         $SQL="INSERT INTO ilceler SET il_id='$ii',ilce='$ilce' ";
  28.         mysql_query($SQL);
  29.         //echo $SQL;
  30.        
  31.     }   
  32. }
  33. ?>

PHP ve Smarty ikilisini kullanıyorsanız birgün mutlaka çok dilli site yapma ihtiyacınız olacaktır.
Smarty temalarınıza dil desteği eklemek için birkaç yöntem var.
Bunlardan en basiti farklı dillere farklı .tpl ler oluşturmak. Uzun vadede çok masraflı bir iş olarak görünüyor. Bu şıkkı eleyelim.

Benim istediğim yönetilebilen diller ekle, çıkart, tercüme et gibi seçenekleri olan bir panel.

Öncelikle veritabanını tasarlayalim:
3 tablomuz var; diller, diller için key tanımlamaları, keylerin tercümeleri.

(more...)

MySQL 'de yavaş çalışan sorguları izlemek istiyorsanız MySQL Slow Query Log 'u açmanız gerekecek.

my.cnf 'de [mysqld] alanına :

log-slow-queries = /var/log/mysql-slow-queries.log

satırını ekleyin.
Yavaş SQL sorgularını /var/log/mysql-slow-queries.log dosyasından takip edebilirsiniz.

SQL sorgularının arasına açıklama satırları yazabilirsiniz.
Örnek :

SQL:
  1. SELECT /* personel adları */ ad FROM personel;

SQL:
  1. SELECT /* maaş verisi */ id,maas FROM maas;

/* ... */ arasına yazdığınız herşeyi MySQL açıklama satırı olarak değerlendirir.

Windows,PHP,MySQL Geliştirme ortamınızı USB Disk ile yanınızda dolaştırın , ortamlara beraber gidin :) Nasıl mı?

Wos Portable bu işlem için cok guzel bir imkan sunuyor. Download sayfasındaki bir sihirbaz yardımı ile istedigniz php mysql apache phpmyadmin  sürümlerini seciyorsunuz ve paketi idiriyorsunuz.
İndirme işlemi tamamlandıktan sonra paketi usb diske açın ve start.exe yi caliştırın. Hepsi bu...

Linux'da shell'den MySQL ' e data import etme işlemi için :
mysql sunucu : localhost
veritabanı adı : lyrics
yedeklenmiş mysql verisi : lyrics.sql

# mysql -p -h localhost lyrics < lyrics.sql

unutmadan bunun birdedump edeh hali var , o da şöyle:

# mysqldump lyrics > lyrics.sql