PHP Dersleri 29: PHP ile MYSQL Bağlantı Yapma Veri Ekleme Silme Listeleme Sıralama İşlemleri
Merhaba arkadaşlar sizlere bu yazımda PHP ile MYSQL e bağlantı yapmayı ve PHP ile formdan girilen veriyi mysql e kaydetme, verileri güncelleme, verileri silme,verileri listeleme ve verileri artan azalan sıralamayı anlatmaya çalışacağım. Bu işlemleri ben 2 sayfada hazırladım. Birinci sayfamız mysql bağlantımızın yapıldığı sayfa(Baglanti.php), ikinci sayfa(index.php) ise ekleme,silme,listeleme ve sıralama işlemlerinin yapıldığı sayfadır.Öncelikle MySQL de aşağıda verdiğim sorguyu çalıştırıyoruz.Eğer PhpMyAdmin kullanıyorsanız PhpMyAdmin'e girdiğinizde sql'e bu sorguyu yapıştırın.
Sql Sorgusu:
-- phpMyAdmin SQL Dump -- version 3.4.5 -- http://www.phpmyadmin.net -- -- Anamakine: localhost -- Üretim Zamanı: 08 Oca 2013, 20:42:38 -- Sunucu sürümü: 5.5.16 -- PHP Sürümü: 5.3.8 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; -- -- Veritabanı: `phpfinal` -- CREATE DATABASE `phpfinal` DEFAULT CHARACTER SET utf8 COLLATE utf8_turkish_ci; USE `phpfinal`; -- -------------------------------------------------------- -- -- Tablo için tablo yapısı `veriler` -- CREATE TABLE IF NOT EXISTS `veriler` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `Ad` varchar(50) CHARACTER SET latin5 NOT NULL, `Vize` int(3) NOT NULL, `Final` int(3) NOT NULL, `Ortalama` int(3) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_turkish_ci AUTO_INCREMENT=6 ;
Şimdi ise oluşturduğumuz veritabanına bağlanılan sayfamızı hazırlayalım.
Kodlar:(Baglanti.php)
<?php $Veri=mysql_connect("localhost","root","");//Localhost ta bulunan mysqke kullanıcı adı root şifre boş olacak şekilde bağlan if (!$Veri) {//bağlanamadı ise die('Bağlanamadı: ' . mysql_error());//hata kodu ile beraber bağlantı hatası veriliyor }//bağlanamadı ise sonu $Baglanti=mysql_select_db("PHPFinal",$Veri);//Mysql bağlantısı içerisindeki veri tabanlarından PHPFinal Veritabanını seç ?>
Evet arkadaşlar veri tabanı bağlantımızı gerçekleştirdik. Veritabanı bağlantısı için kendi belirlediğiniz kullanıcı adı şifreyi ilgili alanlara girmeniz yeterlidir.Şimdi bu bağlantının kullanıldığı sayfayı hazırlayalım.
Kodlar:(index.php)
<head><!--Stil tanımlamaları yapılmaya başlanıyor--> <style type="text/css"> a{ text-decoration:none; color:red; } </style> </head><!--Stil tanımlamaları sonu--> <?php include "Baglanti.php";//Veri tabanı bağlantısının yapıldığı sayfayı bu sayfaya dahil et if(isset($_POST['Hesapla'])){//hesapla verisi geldi ise yani hesapla butonuna basıldıysa $Ad =htmlspecialchars($_POST['Ad']);//formdan post metoduyla gönderilen ad verisi alınıp ad değişkenine aktarılıyor $Vize =$_POST['Vize'];//formdan post metoduyla gönderilen Vize verisi alınıp Vize değişkenine aktarılıyor $Final =$_POST['Final'];//formdan post metoduyla gönderilen Final verisi alınıp Final değişkenine aktarılıyor $Ortalama =$Vize*0.4+$Final*0.6;//Ortalama hesaplanıyor if(is_numeric($Vize)and is_numeric($Final) and strlen($Vize)<=3 and strlen($Final)<=3 and $Vize<=100 and $Final<=100){//Vize Fİnal Kontrollerinden Başarılı ise $Sorgu="INSERT INTO `phpfinal`.`veriler` (`ID`, `Ad`, `Vize`, `Final`, `Ortalama`) VALUES (NULL, '$Ad', '$Vize', '$Final', '$Ortalama');";//Veritabanına ekleme sorgusu yazılıyor if(mysql_query($Sorgu)){//Sorgu başarılı ise echo "veri ekleme başarıyla tamamlandı";//ekrana yaz }//sorgu başarılı ise sonu else {//sorgu başarısız ise echo "<font color='Red'>Veri ekleme sırasında hata meydana geldi</font>";//ekrana yaz }//sorgu başarısız ise sonu }//Vize Fİnal Kontrollerinden Başarılı ise sonu else{//Vize Fİnal Kontrollerinden Başarısız ise echo " Lütfen Geçerli Veriler Giriniz";//ekrana veriler yazılıyor }//Vize Fİnal Kontrollerinden Başarısız ise sonu } if(isset($_GET['Sil'])){//Sil verisi geldi ise yani sil butonuna basıldıysa $sql="DELETE FROM `phpfinal`.`veriler` WHERE `veriler`.`ID` = $_GET[Sil]";//Veritabanından silme sorgusu yazılıyor if(mysql_query($sql)){//Silme başarılı ise echo "başarıyla silindi";//ekrana veriler yazılıyor header("location:index.php");//index.php ye yönlendirir }//Silme başarılı ise sonu else{//Silme başarısız ise echo "silme sırasında hata";//ekrana veriler yazılıyor }//Silme başarısız ise sonu }//Sil verisi geldi ise yani sil butonuna basıldıysa sonu if(isset($_POST['Guncelle'])){//Guncelle verisi geldi ise yani Guncelle butonuna basıldıysa $Ortalama =$_POST['Vize']*0.4+$_POST['Final']*0.6;//Gelen Veriler ile ortamala hesaplanıyor $sql = "UPDATE `phpfinal`.`veriler` SET `Ad` = '$_POST[Ad]', `Vize` = '$_POST[Vize]', `Final` = '$_POST[Final]', `Ortalama` = '$Ortalama' WHERE `veriler`.`ID` = $_POST[ID];";//Veritabanından güncelleme sorgusu yazılıyor if(mysql_query($sql)){//Sorgu Çalıştırılıyor başarılı ise echo "güncelleme başaryla tamamlandı"; }else{//sorgu çalıştırma başarısız ise echo "guncelleme sırasında hata"; }//sorgu çalıştırma başarısız ise sonu }//Guncelle verisi geldi ise yani Guncelle butonuna basıldıysa sonu if(isset($_GET['Duzenle'])){//Duzenle verisi geldi ise yani Duzenle butonuna basıldıysa $sql = mysql_query("SELECT ID,Ad,Vize,Final FROM `veriler` WHERE `ID` = $_GET[Duzenle] LIMIT 0, 30 ");//Veritabanından listeleme srgusu yazılıp çalıştırılıyor if(mysql_num_rows($sql)>0){//Veritabanından Gelen Veriler Var İse while($listele=mysql_fetch_array($sql)){//$sql sonucları bir dziye dönüştürülüp dizi elemanlarının sonuna kadar dönülüyor echo "<form action='index.php' method='POST'> <input type='hidden' name='ID' value='$listele[ID]'> Ad:<input type='text' name='Ad' value='$listele[Ad]'><br/> Vize:<input type='text' name='Vize' value='$listele[Vize]'><br/> Final:<input type='text' name='Final' value='$listele[Final]'><br/> <input type='submit' name='Guncelle' value='Güncelle'> </form>";//ekrana düzenlemek istenen veri için düzenleme formu yazdırılıyor }//dizi elemanlarının sonuna kadar dönme sonu }//Veritabanından Gelen Veriler Var İse Sonu }//Duzenle verisi geldi ise yani Duzenle butonuna basıldıysa sonu ?> <form action='' method='POST'> Ad:<input type="text" name='Ad'><br/> Vize:<input type="text" name='Vize'><br/> Final:<input type="text" name='Final'><br/> <input type="submit" name='Hesapla' value='Notunu Gir'> </form> <?php if(isset($_GET['Sirala'])){//Sırala butonuna basıldıysa/sırala verisi geldi ise $Sirala =$_GET['Sirala'];//Get metodu ile veri alınıyor $sql = mysql_query("SELECT *FROM `veriler` ORDER BY `$Sirala` ASC LIMIT 0 , 30");//Veritabanından listeleme sorgusu yazılıyor A-Z Sıralamalı }//Sırala butonuna basıldıysa/sırala verisi geldi ise sonu elseif(isset($_GET['SiralaT'])){ $Sirala =$_GET['SiralaT'];//Get metodu ile veri alınıyor $sql = mysql_query("SELECT *FROM `veriler` ORDER BY `$Sirala` DESC LIMIT 0 , 30");//Veritabanından listeleme sorgusu yazılıyor Z-A Sıralamalı } else{ $sql = mysql_query("SELECT * FROM `veriler` LIMIT 0, 30 ");//Veritabanından listeleme sorgusu yazılıyor Sıralamalasız } if(mysql_num_rows($sql)>0){//Sorgunun Çalıştırılasından sonra veriler geliyor ise echo "<table border='1'>";//tablo açıp ekrana bas if(isset($_GET['Sirala'])){//Sırala butonuna basıldıysa/sırala verisi geldi ise echo "<tr><th><a href='?SiralaT=Ad'>Ad</a></th><th><a href='?SiralaT=Vize'>Vize</a></th><th><a href='?SiralaT=Final'>Final</a></th><th><a href='?SiralaT=Ortalama'>Ortalama</a></th><th colspan='2'>İşlemler</th></tr>";//Link Yardımıyla Sıralamalı Başlık Ekrana Yazılıyor }else{//Sırala butonuna basıldıysa/sırala verisi gelmedi ise echo "<tr><th><a href='?Sirala=Ad'>Ad</a></th><th><a href='?Sirala=Vize'>Vize</a></th><th><a href='?Sirala=Final'>Final</a></th><th><a href='?Sirala=Ortalama'>Ortalama</a></th><th colspan='2'>İşlemler</th></tr>"; //Link Yardımıyla Sıralamalı Başlık Ekrana Yazılıyo }//Sırala butonuna basıldıysa/sırala verisi gelmedi ise sonu while($listele=mysql_fetch_array($sql)){//$sql sonucları bir dziye dönüştürülüp dizi elemanlarının sonuna kadar dönülüyor echo "<tr><td>$listele[Ad]</td><td>$listele[Vize]</td><td>$listele[Final]</td><td>$listele[Ortalama]</td><td><a href='?Duzenle=$listele[ID]'>Düzenle</a></td><td><a href='?Sil=$listele[ID]'>Sil</a></td></tr>";//veriler ekrana tek tek listeleniyor }//dizi elemanlarının sonuna kadar dönme sonu echo "</table>";//tablo kapaltılıyor }//Veritabanından Gelen Veriler Var İse Sonu mysql_close($Veri);//veri tabanı bağlantısı kapatılıyor ?>
Kodların açıklamalarında her bir kodun ne işe yaradığını anlattım fakat anlamadığınız bir yer veya karşılaştığınız problem varsa yorum ekle bölümünden yazın en kısa sürede cevaplamaya çalışırım.İyi çalışmalar.
Seyfettin KAHVECİ
Balıkesir Üniversitesi
NEF-BOTE
Uzun süredir yorumlara cevap veremediğim için sistem yeni yorumlara kapatılmıştır. Anlayışınız için teşekkürler. |
|