• Sonuç bulunamadı

Laboratuar Notları #5

N/A
N/A
Protected

Academic year: 2022

Share "Laboratuar Notları #5"

Copied!
9
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

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.

(2)

1 İç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

(3)

2

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, e- mail 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 Type Length

id INT 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.

(4)

3 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.

(5)

4 4. id field’ini auto-increment olarak ayarlamak için id field alanındaki kalem ikonuna basınız ve ve auto-

increment 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");

(6)

5 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 E-

mail: johnsmith@gowansnet.com Web: http://www.gowansnet.com

Bu bilgileri tek bir komutla girebilirsiniz:

$query = "INSERT INTO contacts VALUES ('','John','Smith','01234 567890','00112 334455','01234 567891','johnsmith@gowansnet.com','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>

(7)

6 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");

(8)

7

$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...

(9)

8

<?

$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.

Referanslar

Benzer Belgeler

— Örnek; MySQL sunucu üzerinde personel isminde bir veritabanı oluşturmak için aşağıdaki ifade kullanılabilir.

MySQL, hem büyük veri hem de son kullanıcıların (Facebook, Twitter ve Wikipedia gibi) büyük hacimli web siteleri için fiili standart veritabanı sistemidir.. MySQL ile ilgili

- Hazır ifadeler, sorgudaki hazırlık yalnızca bir kez yapıldığından ayrıştırma süresini azaltır (ifade birden çok kez çalıştırılmasına rağmen). - Bağlı

ORDER BY deyimi, sonuç kümesini artan veya azalan düzende sıralamak için kullanılır. ORDER BY deyimi, kayıtları varsayılan olarak artan

LIMIT deyimi, çok sayfalı sonuçları veya sayfalandırmayı SQL ile kodlamayı kolaylaştırır ve büyük tablolarda çok kullanışlıdır. Çok sayıda kaydın

Aşağıdaki örnek, bir diziden XML verilerini okumak için simplexml_load_string() işlevinin nasıl kullanılacağını

Visual Studio kurulumu ile Sql Server, Oracle ve Access veritabanları erişim için gereken eklentiler kurulu gelmektedir.. Diğer veritabanları için, ör: MySQL, veritabanına

(b) cosh 1 2 nin (Kalanlı Taylor Teoremi kullanarak) 10 −4 den az bir hata ile yakla¸sık hesaplanabilmesi i¸cin ka¸cıncı Taylor polinomu kullanılmalıdır?. f nin bir yerel