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


emeginize sağlık çok güzel anlatmışınız
Yorumunuz için teşekkürler. İyi çalışmalar...