Page 1

<? PHP ?>

PHP İLE WEB PROGRAMCILIĞINA GİRİŞ

PHP ve MySQL | Serkan CEYLAN


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ <HTML> <HEAD> <TITLE>PHP ILE WEB PROGRAMCILIGINA GIRIS</TITLE> </HEAD> <BODY> <H2><? Echo “<p>Merhaba Dünya !</p>”; ?></H2> </BODY> </HTML> Sabitler: Script içinde atanan değer değiştirilemez. define(“Anakart”, 115); define(“Soyad”, Ceylan); Operatörler:

Toplama Çıkarma Çarpma Bölme Mod

+ * / %

String Operatörleri: $a = ”Ahmet’in ”; $b = “Bilgisayar Dükkânı”; echo $a.$b; => Ahmet’in Bilgisayar Dükkânı Atama Operatörleri: $x = 7 + (y = 3); => Sonuç: x=10 $x = $x + 5; => $x’i 5 artırır. $x += 5; ile aynıdır. Artırma ve Azaltma: $a = 4; echo ++$a; $a = 4; echo $a++; Referanslar: $a = 5; $b = $a; $a = 5; $b = &$a; $a = 7;

=> sonuç = 5

$a = 5;

=>sonuç = 4

$a = 5;

=> $a değiştiğinde $b aynı kalır. Ancak ;

=> olur ise $b’de 7 olur.

Karşılaştırma Operatörleri: Eşittir == Denktir === Eşit Değil != Eşit Değil <> Küçüktür < Büyüktür > 2


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ Küçük veya Eşit <= Büyük veya Eşit >= Mantıksal Operatörler: ! NOT && AND || OR And AND OR OR Diğer Operatörler: Ternary: Koşul ? true : false $ortalama > 60 ? “Geçti” : “Kaldı”; Hata Bastırma: $a = @(57 / 0); => Sıfıra Bölme Hatası Çıkmaz. Çalıştırma Operatörü: $out = “dir C:”; echo “<pre>”.$out.”</pre>”; Format: $sonuc = number_format($deger, basamak); $x = number_format($a, 2); =>$a = 125 $x = 125,00 Değişken Tip Kontrolü: $a = 56; echo gettype($a);

=> integer döndürür

settype($a, “double”); echo gettype($a); => double döndürür Değişken Durumu: isset (mixed var) : değişkenini olup olmadığını kontrol eder. True- False değer döndürür. unset(mixed var): değişkeni ortadan kaldırır. empty(mixed var): değişken varsa ve sıfır(0) haricinde bir değere sahipse False, aksi halde True değerini döndürür. Karar Yapıları: İf Deyimi: if($siparis == 0) echo “sipariş vermediniz!”; if ($siparis == 0){ echo “<h2>”; echo “Sipariş Vermediniz! <br />”; echo “<a href = index.html> Geri Dön </a>”; echo “</h2>”; } elseif ($siparis == 1){ echo “Siparişiniz Alındı”; } else { echo “2 veya daha fazla ürün sipariş ettiniz.”; } 3


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ Switch Deyimi: Switch ( $siparis ) { Case 0: echo “Sipariş Vermediniz!”; break; Case 1: echo “1 Ürün Sipariş Ettiniz.”; break; Default: echo “2 veya daha fazla ürün sipariş ettiniz.”; break; } Döngüler: While Döngüsü: while(koşul) ifade; $numara = 1; while( $numara <= 5){ echo $numara; $numara++; } For Döngüsü: for(tanımlama; koşul; ifade) ifade2; for($numara = 1; $numara <= 5; $numara++){ echo $numara.”<br />”; } Do-While Döngüsü: Öncelikle Do bloğundaki ifade işletilir. Koşula sonra bakılır. $numara = 1; Do{ Echo $numara; } While($numara < 5); Döngüden çıkmak için ise exit komutu kullanılır. Diziler: $dizidegiskeni = array(“eleman1”, “eleman2”, “eleman3”); $dizi = range(1, 10); => 1,2,…,10 dizi oluştu. $degisken = $dizi[0]; => dizinin ilk elemanını alır. Çok Boyutlu Diziler: KOD Lt Yg bj

ÜRÜN Lastik Yağ Buji

FİYAT 80 20 50

=> 3 elemanlı dizi oluştu

<= 2 boyutlu bir dizi örneği

$urunler = array( array(“Lt”, “Lastik”, “80”), array(“Yg”, “Yağ”, “20”), array(“Bj”, “Buji”, “50”) ); echo $urunler[0][0]; => Lt echo $urunler[0][1]; => Lastik

4


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ Sıralama: sort(): $urunler = array(“urun3”, “urun1”, “urun2”); Sort($urunler); => urun1, urun2, urun3 Dizileri Düzenleme: shuffle(): Dizideki elemanları rastgele sıralar. $dizi = array(“1”, “2”, “3”, “4”, “5”); Shuffle($dizi); => 3, 1, 5, 4, 2 String’lerin Formatlanması: trim(): String başındaki ve sonundaki boşlukları atar. ltrim():

String’in başındaki boşlukları atar.

chop():

String’in sonundaki boşlukları atar.

nl2br():

Uzun string’lerin sonuna yığılmayı önlemek için <br> atar.

Strtoupper(): String’in bütün harflerini büyük harfe çevirir. Strtolower(): String’in bütün harflerini küçük harfe çevirir. ucfirst():

String’in ilk harfini büyük harfe çevirir.

ucwords():

String’in bütün kelimelerinin baş harfini büyük harfe çevirir.

addSlashes(): Veritabanına kayıt için string’e // eklemesi yapar. stripSlashes():Formatlanmış String’i normale çevirir. substr():

Bir String’i belirli bir noktadan itibaren, istenilen kadar alır. => Substr(string, başlangıç, karakter sayısı);

Diğer Formdan Değişkenleri Almak: Diğer formdan gönderilen verileri almak için 2 yol vardır; GET: Bu methodla gönderilen veri, adres çubuğunda görünür. $a = $HTTP_GET_VARS*“alinacak”+; $a = $_GET*“alinacak”+; POST: Bu method ile gönderilen veriler ise araç çubuğunda gözükmez. $a = $HTTP_POST_VARS*“alinacak”+; $a = $_POST*“alinacak”+;

5


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ

PHP ile MySQL Veritabanı İşlemleri

6


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ Web üzerinden çalışan bir sistemde, verileri sorgulamada şu adımlar takip edilmelidir; 1- Formdan / Kullanıcıdan gelen veriler kontrol edilir ve filtrelenir. 2- Veritabanı bağlantısı yapılır. 3- Veritabanı sorgusu gerçekleştirilir. 4- Sonuçlar alınır. 5- Alınan sonuçlar kullanıcıya sunulur. Bağlantı Oluşturma: $db = mysql_pconnect(server, kullaniciadi, sifre); => $db = mysql_pconnect(“localhost”, “root”, “1234”); Bu bağlantıyı kontrol etmek için ise aşağıdaki kod bloğu kullanılabilir; if(!$db){ echo “Veritabanı bağlantı Hatası”; exit; } Ancak bu bloğu kullanmak için veritabanı bağlantısının başına @ işareti konulması gerekir. Aksi halde script, bu bloğu işleyemeden hata verecektir. => @ $db = mysql_pconnect(“localhost”, “root”, “1234”); Mysql_pconnect yerine kullanılabilecek bir bağlantı tipi daha vardır. mysql_connect. İkisi arasındaki fark ise, mysql_connect geçici bir bağlantıdır ve mysql_close ile kapatılabilir. Ancak mysql_pconnect kalıcı bir bağlantıdır ve script sonlandırılsa bile bağlantı devam eder. Bu, her seferinde bağlanmaya çalışarak zaman kaybına yol açmasını engeller. Veritabanını Seçme: Web’den PHP ile MySql’e bağlandıktan sonra, kullanacağımız veritabanını seçmemiz gerekir. Bunun için mysql_select_db() fonksiyonu kullanılır. => mysql_select_db(“hesaplar”); : En son kullanılan bağlantıdaki “hesaplar” => mysql_select_db(“hesaplar”, $db); : $db bağlantısındaki “hesaplar” Veritabanını Sorgulama: Seçilen veritabanında sorgu oluşturmak için ise mysql_query fonksiyonu çağırılabilir. Ancak daha önce yapacağımız sorguyu bir string içine aktarmak daha iyi olacaktır. => $sorgu = “SELECT * FROM Kayitlar”; Şimdi sorgu cümlesi çalıştırılabilir; => $sonuc = mysql_query($sorgu); => $sonuc = mysql_query($sorgu, $db); Bu fonksiyonların haricinde daha derli toplu olan mysql_db_query() fonksiyonu da kullanılabilir. => mysql_db_query(“hesaplar”, $sorgu, $db); Sorgu Sonuçlarını Almak: Sorgu sonuçlarını almak için 2 fonksiyon vardır. Bunlar; mysql_numrows() ve mysql_fetch_array() fonksiyonlarıdır. mysql_numrows ya da mysql_num_rows fonksiyonu döndürülen satır sayısını verir. => $sonuc_say = mysql_num_rows($sonuc); Bir satırdaki verileri almak için gereken kodlar aşağıda verilmiştir;

7


PHP İLE WEB PROGRAMCILIĞINA GİRİŞ for($i = 0; $i < $sonuc_say; $i++) { $satır = mysql_fetch_row($sonuc); echo “<br />Tutarlar”; echo stripslashes($satır*“tutar”+); } mysql_fetch_array() => değerleri dizi olarak alır. mysql_fetch_row() => değerleri sıralı dizi olarak alır. mysql_fetch_object() => değerleri nesne içine alır. Bu fonksiyonların hepsi bir seferde bir satır alır. Bir seferde bir alan almak için ise mysql_result() kullanılabilir. => $satir = mysql_result($sonuc, $i, “tutar”); Veritabanına Yeni Bilgiler Eklemek: Veritabanına veri eklemek için de yine mysql bağlantısı kurup, veri eklenecek veritabanını seçmeli ve sorguyu oluşturmalıyız. Veri okumadan tek farkı, verileri yazmak için mysql_query() fonksiyonunun yeterli olmasıdır. Şimdi bir örnekle bu fonksiyonu açıklayalım; <?php @ $db = mysql_pconnect("localhost", "root", "mysql"); if(!$db){ echo "Veritabanına Bağlanılamadı"; exit; } mysql_select_db("hesaplar"); $tarih = date("Y-m-d"); $query = "INSERT INTO alisveris VALUES (NULL, 'Serkan CEYLAN', 45.90, date('$tarih'))"; $result = mysql_query($query); if($result){ echo mysql_affected_rows()." satır etkilendi."; } else{ echo "Hata Oluştu! <br /> Hata Mesajı: ".mysql_error(); } ?> Burada mysql_affected_rows() fonksiyonu, eklenen satır sayısını verir. Bu fonksiyonun asıl görevi ise işlemden etkilenen satır sayısını vermesidir. Örneğin silme sorgusu çalıştırdığınızda, kaç satır silindiğini; güncelleme sorgusu çalıştırdığınızda ise kaç satırın güncellendiğini verir. mysql_error() fonksiyonu da mysql işlemlerinde çıkabilecek hataların açıklamalarını barındırır. Eğer script bir hata verirse bunu kullanıcıya ve ya yöneticiye bildirmek için kullanılır. Bu konuya zaten ileride de değineceğiz.

8

PHP and MySQL  

php ve mysql hakkında kısa notlar