avatar

PHP ile Mysql Veritabanına Kayıt veri Ekleme (Insert)

09/03/2021
admin

makale.baslik

PHP ile MySQL veri tabanına bağlanıp ekleme, listeleme, silme ve düzenleme yapacağız. Veri tabanı bağlantısını ve tüm işlemleri kullanmak için Mysqli sınıfını kullanacağımız bir uygulama olacaktır. 

Bu uygulamayı temel alıp düz PHP kullanarak başlangıç seviyesinde CRUD (create, read, update, delete - oluşturma, okuma, güncelleme, silme ) işlemleri yapan web sayfaları yapabilirsiniz. Bu örnek uygulamada 4 sayfamız olacak. Bunlar

ekle.php: verileri eklemek ve listelemek için kullanacağız.

duzenle.php: Veri düzenlemek için kullanacağız.

sil.php: Veri silmek için kullanacağız

vt.php: Veri tabanına bağlanmak için gerekli kodları koyacağız

Önce mesudblog adında MySQL local sunucumuzda veri tabanımızı oluşturalım. Kullanmak için makale adında tablo oluşturalım. İçinde id, baslik ve icerik alanlarını oluşturalım. Gerekli veri tabanını oluşturacak dosyayı makalenin sonunda ekledim.

 

Daha sonra vt.php ile MySQL sunucudaki veri tabanına bağlanalım. Açıklamalar kodların aralarındadır. 

<?php

@$baglanti = new mysqli('localhost', 'root', '', 'mesutdblog'); // Veritabanı bağlantımızı yapıyoruz.
    if(mysqli_connect_error()) //Eğer hata varsa yazdırıyoruz 
    {
        echo mysqli_connect_error();
        exit; //eğer bağlantıda hata varsa PHP çalışmasını sonlandırıyoruz.
    }

$baglanti->set_charset("utf8"); // Türkçe karakter sorunu olmaması için utf8'e çeviriyoruz.

?>

Şimdi ekle.php sayfası ile veri listeleme ve ekleme işlemleri yapacağız.

php mysql ekleme ve listeleme

 

 <?php 
include("vt.php"); // veritabanı bağlantımızı sayfamıza ekliyoruz. 
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Veritabanı İşlemleri</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
</head>
<body>
<div class="container">
<div class="col-md-6">
<form action="" method="post">
    
    <table class="table">
        
        <tr>
            <td>Başlık</td>
            <td><input type="text" name="baslik" class="form-control" ></td>
        </tr>

        <tr>
            <td>İçerik</td>
            <td><textarea name="icerik" class="form-control" ></textarea></td>
        </tr>

        <tr>
            <td></td>
            <td><input class="btn btn-primary"  type="submit" value="Ekle"></td>
        </tr>

    </table>

</form>

<!-- Öncelikle HTML düzenimizi oluşturuyoruz. Daha sonra girdiğimiz verileri veritabanına eklemesi için PHP kodlarına geçiyoruz. -->

<?php 

if ($_POST) { // Sayfada post olup olmadığını kontrol ediyoruz.

    // Sayfa yenilendikten sonra post edilen değerleri değişkenlere atıyoruz
    $baslik = $_POST['baslik']; 
    $icerik = $_POST['icerik'];

    if ($baslik<>"" && $icerik<>"") { 
    // Veri alanlarının boş olmadığını kontrol ettiriyoruz. Başka kontrollerde yapabilirsiniz.
        
         // Veri ekleme sorgumuzu yazıyoruz.
        if ($baglanti->query("INSERT INTO makale (baslik, icerik) VALUES ('$baslik','$icerik')")) 
        {
            echo "Veri Eklendi"; // Eğer veri eklendiyse eklendi yazmasını sağlıyoruz.
        }
        else
        {
            echo "Hata oluştu";
        }

    }

}

?>
</div>
<!-- ############################################################## -->

<!-- Veritabanına eklenmiş verileri sıralamak için önce üst kısmı hazırlayalım. -->
<div class="col-md-7">
<table class="table">
    
    <tr>
        <th>No</th>
        <th>Başlık</th>
        <th>İçerik</th>
        <th></th>
        <th></th>
    </tr>

<!-- Şimdi ise verileri sıralayarak çekmek için PHP kodlamamıza geçiyoruz. -->

<?php 

$sorgu = $baglanti->query("SELECT * FROM makale"); // Makale tablosundaki tüm verileri çekiyoruz.

while ($sonuc = $sorgu->fetch_assoc()) { 

$id = $sonuc['id']; // Veritabanından çektiğimiz id satırını $id olarak tanımlıyoruz.
$baslik = $sonuc['baslik'];
$icerik = $sonuc['icerik'];

// While döngüsü ile verileri sıralayacağız. Burada PHP tagını kapatarak tırnaklarla uğraşmadan tekrarlatabiliriz. 
?>
    
    <tr>
        <td><?php echo $id; // Yukarıda tanıttığımız gibi alanları dolduruyoruz. ?></td>
        <td><?php echo $baslik; ?></td>
        <td><?php echo $icerik; ?></td>
        <td><a href="duzenle.php?id=<?php echo $id; ?>" class="btn btn-primary">Düzenle</a></td>
        <td><a href="sil.php?id=<?php echo $id; ?>" class="btn btn-danger">Sil</a></td>
    </tr>

<?php 
} 
// Tekrarlanacak kısım bittikten sonra PHP tagının içinde while döngüsünü süslü parantezi kapatarak sonlandırıyoruz. 
?>

</table>
</div>
</div>
</body>
</html>

Şimdi duzenle.php sayfası ile  verileri düzenleyeceğiz. Hangi veriyi düzenleyeceğimizi get metottu ile id değerini alarak gerçekleştireceğiz.

duzenle

 <?php 
include("vt.php"); // veritabanı bağlantımızı sayfamıza ekliyoruz. 
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Veritabanı İşlemleri</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

</head>
<body>

<?php 

$sorgu = $baglanti->query("SELECT * FROM makale WHERE id =".(int)$_GET['id']); 
//id değeri ile düzenlenecek verileri veritabanından alacak sorgu

$sonuc = $sorgu->fetch_assoc(); //sorgu çalıştırılıp veriler alınıyor

?>

<div class="container">
<div class="col-md-6">

<form action="" method="post">
    
    <table class="table">
        
        <tr>
            <td>Başlık</td>
            <td><input type="text" name="baslik" class="form-control" value="<?php echo $sonuc['baslik']; 
                 // Veritabanından verileri çekip inputların içine yazdırıyoruz. ?>">
            </td>
        </tr>

        <tr>
            <td>İçerik</td>
            <td><textarea name="icerik" class="form-control"><?php echo $sonuc['icerik']; ?></textarea></td>
        </tr>

        <tr>
            <td></td>
            <td><input type="submit" class="btn btn-primary" value="Kaydet"></td>
        </tr>

    </table>

</form>
</div>
<div>
<?php 

if ($_POST) { // Post olup olmadığını kontrol ediyoruz.
    
    $baslik = $_POST['baslik']; // Post edilen değerleri değişkenlere aktarıyoruz
    $icerik = $_POST['icerik'];

    if ($baslik<>"" && $icerik<>"") { // Veri alanlarının boş olmadığını kontrol ettiriyoruz.
        
        // Veri güncelleme sorgumuzu yazıyoruz.
        if ($baglanti->query("UPDATE makale SET baslik = '$baslik', icerik = '$icerik' WHERE id =".$_GET['id'])) 
        {
            header("location:ekle.php"); 
            // Eğer güncelleme sorgusu çalıştıysa ekle.php sayfasına yönlendiriyoruz.
        }
        else
        {
            echo "Hata oluştu"; // id bulunamadıysa veya sorguda hata varsa hata yazdırıyoruz.
        }
    }
}
?>
</body>
</html>

sil.php sayfası ile id değeri get ile gönderilen satırı veri tabanından siliyoruz.

 <?php 

if ($_GET) 
{

include("vt.php"); // veritabanı bağlantımızı sayfamıza ekliyoruz.

// id'si seçilen veriyi silme sorgumuzu yazıyoruz.
if ($baglanti->query("DELETE FROM makale WHERE id =".(int)$_GET['id'])) 
{
    header("location:ekle.php"); // Eğer sorgu çalışırsa ekle.php sayfasına gönderiyoruz.
}
}

?>

Bu çalışmayı html, css ile destekleyip daha iyi sayfalar yapabilirsiniz. Temel olarak mysqli kullanarak veriler ile bu şekilde işlemler yapabilirsiniz.

Yorumlar Yorum Yap