Laboratuar Notları #5 - the CyberSoft Bilişim Teknolojileri Home Page

Transkript

Laboratuar Notları #5 - the CyberSoft Bilişim Teknolojileri Home Page
The European Union’s “Making the Labour Market more
Inclusive III” programme For “North Cyprus”
Upgrading Internet Technology skills
of Information and Communication
Technologies (ICT) Professionals
Module 3: Cloud Computing
Modül 3: Bulut Bilişim
Laboratuar Notları #5
A project implemented by
CyberSoft Bilişim Teknolojileri Ltd.
This project is funded by European Union. The
contents of this publication are the sole responsibility
of Cybersoft Bilişim Teknolojileri Ltd. and can in no
way be taken to reflect the views of the European
Union.
İçerik
Bölüm 5: PHP’de MySQL Bağlantısı Kurma ve Veritabanı İşlemleri
1. Giriş…….………........……………………………………………………….......................................................2
2. MySQL Bağlantısı için Nelere İhtiyaç Var?…………....………………………………………..........................2
3. PHPMyAdmin Kullanarak Veritabanı Oluşturmak ve Yönetmek….............................…………………………2
4. PHP ile Veritabanı İşlemleri ……………………………………………………....................…………………4
1
1) Giriş
Bu lab dersinde PHP kullanarak nasıl MySQL database bağlantısı kurabileceğimizi ve PHP formlarından
aldığımız bilgileri nasıl database’imize saklayabileceğimizi göreceğiz. Buna ek olarak PHP ve MySQL’in birlikte
kullanımını gösteren bir örnek işleyeceğiz. Bu örnek aslında PHP formundam girilen isimleri, adres bilgilerini, email ve telefon numaralarını saklayabilen web tabanlı bir iletişim programıdır.
2) MySQL bağlantısı için nelere ihtiyacımız var?
PHP script’lerinize MYSQL database bağlantısı ekleyebilmek için iki şeye ihtiyacınız vardır.
1. Web sunucusu – biz Xampp’ın bize ücretsiz olarak sağladığı Apache sunucusunu kullanacağız.
2. MySQL – yine Xampp kurulduğu zaman MySQL de içerisinde kurulmuş olarak geliyor.
Diğer database yazılımlarını (SQL, Oracle etc.) da kullanabilirsiniz ama bu lab dersinde biz sadece PHP/MySQL
bağlantısını işleyeceğiz.
Bunun için öncelikle Xampp’ı açıp MysQL ve Apache sunucusunu çalıştırınız.
3) PHPMyAdmin Kullanarak Varitabanı yaratmak ve yönetmek
PHP komutlarını kullanarak da database yönetim işlemlerini yapabilirsiniz. Ancak benim tavsiyem
PHPMyAdmin bir kopyasını sunucunuzun üzerine kurmanızdır ki aslında Xampp ile birlikte otomatik olrak
kurmuş oldunuz.PHPMyAdmin size yeni database ekleyip, silmek, değiştirmek, backup almak ve görebilmek
için mükemmel bir arayüz sağlar.
Öncelikle içerisinden bilgi okuyup, yazabileceğiniz database’inizi yaratmanız gerekmektedir. Biz bu çalışmada
aşağıdaki İletişim veritabanını kullanacağız:


Name
id
Type
INT
Length
6
first
VARCHAR
15
last
VARCHAR
15
tel
VARCHAR
20
mobile
VARCHAR
20
fax
VARCHAR
20
email
VARCHAR
30
web
VARCHAR
30
Telefon/fax numaralarının sayılardan oluşmasına rağmen neden INT değil VARCHAR olarak tanımlanmış
olduğunu merak edebilirsiniz. Çünkü VARCHAR olarak tanımladığımız zaman içerisinde kısa çizgi veya
boşluk kullanabiliriz. (1800-COMPANY)
Diğer bir önemli nokta ise id PRIMARY, INDEX, UNIQUE ve auto_increment olarak tanımlamalıyız.
Auto_increment opsiyonunu PHPMyAdmin Extra altında bulabilirsiniz.). Auto increment ayarlanmasının
sebebi her yeni record eklendiğinde ona sıradaki sayıyı otomatik olarak verebilmesini sağlamaktır.
2
Yukarıdaki contacts tablosunu yaratmanın iki yolu vardır :
1. PHPMyAdmin’i kullanarak
2. PHP kodlarını kullanarak
PHPMyAdmin kullanarak tablo yaratmak çok kolaydır. Bunun için öncelikle PHPmyadmin açmanız
gerekmektedir. Apache and MySQL çalıştırdıktan sonra, web sayfasına http://localhost/phpmyadmin/ yazınız. Eğer
başarılı olduysa, aşağıdaki gibi phpMyAdmin başlangıç sayfası ekranınıza gelecektir.
Burada yeni database yaratmak için sadece ismini veriyorsunuz. Mesela biz bu örnekte People verdik.
1. Daha sonra yeni bir tablo yaratmanız gerekmektedir. Tablo adına contacts, number of field kısmına ise 8 giriniz
ve Go butonuna basınız.
3. Sırada field isimlerini yaratmak vardır. Bunun için aşağıdaki gibi field isimlerini ve uzunluklarını
tanımlayınız.
3
4. id field’ini auto-increment olarak ayarlamak için id field alanındaki kalem ikonuna basınız ve ve autoincrement kutusunu tikleyiniz ve save butonuna basınız.
4) PHP ile Veritabanı İşlemleri
1. Simdiye kadar PHPMyadmin kullanarak veritabanı ve tablo yaratma kısmını hallettik. Şimdi PHP koduna
dönüp MySQL’e bağlantıyı nasıl yapacağımıza ve yarattığımız tabloya nasıl bilgi ekleyebileceğimize
bakalım.. Öncelikle localhost’daki MySQL’e bağlanmanız gerekmektedir. MySQL bağlantısını başlatmak
için aşağıdaki komut kullanılmaktadır:
mysql_connect(localhost,$username,$password);
Bu komut PHP’ye This line tells PHP to connect to the at 'localhost'daki MySQL veritabanı sunucusuna
$username and $password kullanarak bağlanmasını söylemektedir.
2. Mysql’e bağlandıktan sonra MySQL’de yarattığımız people veritabanına bağlanmanız gerekmektedir. Bunun
için:
@mysql_select_db($database) or die( "Unable to select database");
4
komutu kullanılmaktadır. Bu komut PHP’ye $database değişkeni içindeki veritabanına bağlanmasını
söyler.Eğer bağlanamazsa da
Unable to select database
hatasını verir.
3. Simdi mysql’e bağlandık ve yarattığımız people veritabanını seçtik. Şimdi veritabanına bilgi ekleme
zamanı...İlk bilgimizi şu şekilde giriniz:
First: John
Last: Smith
Phone: 01234 567890
Mobile: 00112 334455
Fax: 01234 567891
Email: [email protected]
Web: http://www.gowansnet.com
Bu bilgileri tek bir komutla girebilirsiniz:
$query = "INSERT INTO contacts VALUES ('','John','Smith','01234 567890','00112 334455','01234
567891','[email protected]','http://www.gowansnet.com')";
Bu komut ilk bakışta karışık gelebilir ama anlamak için lütfen dikkatlice inceleyiniz. Parantez içindekiler
eklemek istediğimiz bilgileri sırasıyla tırnakların içerisinde içermektedir.
Not : Dikkat ettiyseniz id field’ine yani ilk dield’e herhangi birsey eklenmemistir. Çunku bu field index field
olarak alısmakta ve aynı iki id numarasının eklenmesini önlemek için ‘Auto Increment' olarak
tanımlanmıstır. Sizin herhangi bilgi eklememeniz demek sıradaki numarayı almasını sağlar. Bu demektir ki
girdiğimiz bu ilk bilgiye id numarası 1 verilmistir.
4. Şimdi de PHP formlarını kullanarak nasıl bilgi ekleyip, nasıl bu bilgileri ekrana getirebileceğimize bakalım.
HTML sayfalarını kullanarak bilgi almak PHP komutlarını kullanarak bilgi eklemeye benzer. Ancak form
kullanmak her yeni bilgi için kod modifiye etme zorluğunu ortadan kaldırır ve aynı zamanda kullanıcıların
kendi bilgilerini girmesine izin verir. Aşağıda verilen kod gerekli bilgilerin girilmesi için gerekli olan HTML
sayfasını yaratır:
<form action="insert.php" method="post">
First Name: <input type="text" name="first"><br>
Last Name: <input type="text" name="last"><br>
Phone: <input type="text" name="phone"><br>
Mobile: <input type="text" name="mobile"><br>
Fax: <input type="text" name="fax"><br>
E-mail: <input type="text" name="email"><br>
Web: <input type="text" name="web"><br>
<input type="Submit">
</form>
5
Bu sayfanın tabi ki daha güzel formatlanabilir ama bu başlangıç için yeterli olacaktır.
<?
$username="username";
$password="password";
$database="your_database";
$first=$_POST['first'];
$last=$_POST['last'];
$phone=$_POST['phone'];
$mobile=$_POST['mobile'];
$fax=$_POST['fax'];
$email=$_POST['email'];
$web=$_POST['web'];
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "INSERT INTO contacts VALUES ('','$first','$last','$phone','$mobile','$fax','$email','$web')";
mysql_query($query);
mysql_close();
?>
Bu kod parcasını açtığınız PHP file’a yapıştırınız ve insert.php olarak kaydediniz.
5. Şimdi de aldığımız bilgileri ekrana yazdırma zamanı... Bunun için gerekli olan ilk komutumuz
SELECT * FROM contacts
Bu komut contacts tablosundaki bütün bilgileri seçmemize yarayan basit MySQL komutudur. Dönen sonucun
bir değişkene atanması gerekmektedir.
$query="SELECT * FROM contacts";
$result=mysql_query($query);
Şimdi veritabanınızdaki bütün bilgiler $result arrayinin içine konmustur. Sonucu ekrana yazdırabilmek için
her bilgiyi ayrı değişkene atamak gereklidir. Bunun için iki aşama vardır :
 Öncelikle veritabanınızda kac satır olduğunu bilmeniz gereklidir.Bunun için aşağıdaki komutu
kullanacağız:
$num=mysql_numrows($result);

Daha sonra while loop kullanarak ekrana yazdıracağız.
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"first");
6
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");
$i++;
}
6. Şimdi bütün koda toplu halde bakalım:
<?
$username="username";
$password="password";
$database="your_database";
mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM contacts";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");
echo "<b>$first $last</b><br>Phone: $phone<br>Mobile: $mobile<br>Fax: $fax<br>E-mail:
$email<br>Web: $web<br><hr><br>";
$i++;
}
?>
7. Şimdiye kadar nasıl veritabanı ve tablo yaratbileceğimizi, veritabanımıza nasıl bilgi ekleyip, ekrana
yazdırabileceğimizi gördük. Simdi ise bilgilerimizi ekrana nasıl daha düzgün bir formatta yazdırabileceğimizi
göreceğiz. Bu formatlamayı yapma çok da zor birsey değil aslında...Tek yapmanız gereken HTML
komutlarını kullanarak tablo içerisinde bilgilerimizi yazdırmak...
7
<?
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");
?>
<tr>
<td><font face="Arial, Helvetica, sans-serif"><? echo $first." ".$last; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $phone; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $mobile; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><? echo $fax; ?></font></td>
<td><font face="Arial, Helvetica, sans-serif"><a href="mailto:<? echo $email; ?>">E-mail</a></font></td>
<td><font face="Arial, Helvetica, sans-serif"><a href="<? echo $web; ?>">Website</a></font></td>
</tr>
<?
$i++;
}
Not : Koddaki <a href="mailto:<? echo $email; ?>">E-mail</a> satırı PHP ve MySQL kullanarak sayfanızı
nasıl dinamik yapabileceğinize ğüzel bir örnektir.
8. Şimdi de veritabanındaki bütün bilgileri göstermek yerine istediğimiz kriterdeki recordları nasıl
seçebileceğimize bakalım:
Mesela ilk ismi 'John' olan kişileri ekrana yazdırmak için şu sorgulamayı yapmalıyız:
SELECT * FROM contacts WHERE first='john'
9. Simdiye kadar veritabanımızdaki bilgileri istediğimiz kriterlere göre nasıl seçip ekrana yazabileceğimizi
gördük. Ancak yapabileceklerimiz sadece ekrana yazmakla sınırlı değil, bilgilerimizi sıralayabiliriz de.
Mesela veritabanındaki herkesi soyadına göre artan sırada A’dan Z’ye nasıl sıralayabileceğimize bakalım.
SELECT * FROM contacts ORDER BY last ASC
Z’den A’ya sıralamak için de DESC kullanabiliriz.
8

Benzer belgeler