Bu yazıda PHP PDO kullanarak veri tabanı işlemlerini yapan HTML ve PHP kodlarını bulacaksınız. Sayfalardaki kodlar ayrı ayrı gösterilecek ve PHP kodları da sayfanın üstünde bulunacaktır.
Öncelikle yapılacak çalışmanın bir ekran görsel ile başlayalım.
Uygulamanın Yapılış Videosu:
Uygulama kodlarının yapılış hakkında detaylı bilgiyi videoya tıklayarak bulabilirsiniz.
Uygulamadaki HTML ve PHP kodları:
baglan.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php /* Sürücü isteğiyle bir ODBC veritabanına bağlanalım */ $dsn = 'mysql:dbname=kutuphane;host=127.0.0.1'; $user = 'root'; $password = ''; try { $baglan = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Bağlantı kurulamadı: ' . $e->getMessage(); } ?> |
index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | <?php include "baglan.php"; if(isset($_GET['sil'])){ $sqlsil="DELETE FROM `ogrenci` WHERE `ogrenci`.`ogrno` = ?"; $sorgusil=$baglan->prepare($sqlsil); $sorgusil->execute([ $_GET['sil'] ]); header('Location:index.php'); } $sql ="SELECT * FROM ogrenci"; $sorgu = $baglan->prepare($sql); $sorgu->execute(); ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> </head> <body> <header> <div class="container"> <div class="row"> <div class="col"> <h1 class="display-1 text-center">Tasarım Kodlama</h1> </div> </div> <div class="row"> <div class="col"> <div class="btn-group"> <a href="index.php" class="btn btn-outline-primary">Tüm Öğrenciler</a> <a href="ekle.php" class="btn btn-outline-primary">Öğrenci Ekle</a> </div> </div> </div> </div> </header> <main> <div class="container"> <div class="row mt-4"> <div class="col"> <table class="table table-hover table-dark table-striped"> <thead> <tr> <th>No</th> <th>Ad</th> <th>Soyad</th> <th>İşlem</th> </tr> </thead> <tbody> <?php while($satir = $sorgu->fetch(PDO::FETCH_ASSOC)) { ?> <tr> <td><?=$satir['ogrno']?></td> <td><?=$satir['ograd']?></td> <td><?=$satir['ogrsoyad']?></td> <td> <div class="btn-group"> <a href="detay.php?ogrno=<?=$satir['ogrno']?>" class="btn btn-success">Detay</a> <a href="guncelle.php?ogrno=<?=$satir['ogrno']?>" class="btn btn-secondary">Güncelle</a> <a href="?sil=<?=$satir['ogrno']?>" onclick="return confirm('Silinsin mi?')" class="btn btn-danger">Kaldır</a> </div> </td> </tr> <?php } ?> </tbody> </table> </div> </div> </div> </main> <footer></footer> </body> </html> |
ekle.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <?php if(isset($_POST["kaydet"])) { include "baglan.php"; $sql = "INSERT INTO `ogrenci` (`ogrno`, `ograd`, `ogrsoyad`, `cinsiyet`, `dtarih`, `sinif`, `puan`) VALUES (NULL, ?, ?, ?, ?, ?, '0');"; $dizi =[ $_POST["ad"], $_POST["sad"], $_POST["cins"], $_POST["dtarih"], $_POST["sinif"] ]; $sth = $baglan->prepare($sql); $sonuc = $sth->execute($dizi); header("Location:index.php"); } ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> </head> <body> <header> <div class="container"> <div class="row"> <div class="col"> <h1 class="display-1 text-center">Tasarım Kodlama</h1> </div> </div> <div class="row"> <div class="col"> <div class="btn-group"> <a href="index.php" class="btn btn-outline-primary">Tüm Öğrenciler</a> <a href="ekle.php" class="btn btn-outline-primary">Öğrenci Ekle</a> </div> </div> </div> </div> </header> <main> <div class="container"> <form action="" method="post" class="row mt-4 g-3"> <div class="col-6"> <label for="ad" class="form-label">Adınız</label> <input type="text" class="form-control" name="ad"> </div> <div class="col-6"> <label for="sad" class="form-label">Soyadınız</label> <input type="text" class="form-control" name="sad"> </div> <div class="col-6"> <label for="sinif" class="form-label">Sınıf</label> <input type="text" class="form-control" name="sinif"> </div> <div class="col-6"> <label for="dtarih" class="form-label">Doğum Tarihi</label> <input type="date" class="form-control" name="dtarih"> </div> <div class="col"> <label for="" class="form-label">Kız <input type="radio" name="cins" value="K"> </label> <label for="" class="form-label">Erkek <input type="radio" name="cins" value="E"> </label> </div> <button type="submit" name="kaydet" class="btn btn-primary">Kaydet</button> </form> </div> </main> <footer></footer> </body> </html> |
guncelle.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | <?php include "baglan.php"; if(isset($_POST['guncelle'])){ $sql = "UPDATE `ogrenci` SET `ograd` = ?, `ogrsoyad` = ?, `dtarih` = ?, `sinif` = ? WHERE `ogrenci`.`ogrno` = ?"; $dizi=[ $_POST['ad'], $_POST['sad'], $_POST['dtarih'], $_POST['sinif'], $_POST['ogrno'] ]; $sorgu = $baglan->prepare($sql); $sorgu->execute($dizi); header("Location:index.php"); } $sql ="SELECT * FROM ogrenci WHERE ogrno = ?"; $sorgu = $baglan->prepare($sql); $sorgu->execute([ $_GET['ogrno'] ]); $satir = $sorgu->fetch(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> </head> <body> <header> <div class="container"> <div class="row"> <div class="col"> <h1 class="display-1 text-center">Tasarım Kodlama</h1> </div> </div> <div class="row"> <div class="col"> <div class="btn-group"> <a href="index.php" class="btn btn-outline-primary">Tüm Öğrenciler</a> <a href="ekle.php" class="btn btn-outline-primary">Öğrenci Ekle</a> </div> </div> </div> </div> </header> <main> <div class="container"> <form action="" method="post" class="row mt-4 g-3"> <input type="hidden" name="ogrno" value="<?=$satir['ogrno']?>"> <div class="col-6"> <label for="ad" class="form-label">Adınız</label> <input type="text" class="form-control" name="ad" value="<?=$satir['ograd']?>"> </div> <div class="col-6"> <label for="sad" class="form-label">Soyadınız</label> <input type="text" class="form-control" name="sad" value="<?=$satir['ogrsoyad']?>"> </div> <div class="col-6"> <label for="sinif" class="form-label">Sınıf</label> <input type="text" class="form-control" name="sinif" value="<?=$satir['sinif']?>"> </div> <div class="col-6"> <label for="dtarih" class="form-label">Doğum Tarihi</label> <input type="date" class="form-control" name="dtarih" value="<?=$satir['dtarih']?>"> </div> <button type="submit" name="guncelle" class="btn btn-primary">Güncelle</button> </form> </div> </main> <footer></footer> </body> </html> |
detay.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | <?php include "baglan.php"; $sql ="SELECT * FROM ogrenci WHERE ogrno = ?"; $sorgu = $baglan->prepare($sql); $sorgu->execute([ $_GET['ogrno'] ]); $satir = $sorgu->fetch(PDO::FETCH_ASSOC); ?> <!DOCTYPE html> <html lang="tr"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tasarım Kodlama</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> </head> <body> <header> <div class="container"> <div class="row"> <div class="col"> <h1 class="display-1 text-center">Tasarım Kodlama</h1> </div> </div> <div class="row"> <div class="col"> <div class="btn-group"> <a href="index.php" class="btn btn-outline-primary">Tüm Öğrenciler</a> <a href="ekle.php" class="btn btn-outline-primary">Öğrenci Ekle</a> </div> </div> </div> </div> </header> <main> <div class="container"> <div class="row"> <div class="col"> <div class="card"> <div class="card-body"> <h5 class="card-title"> <?=$satir["ograd"]?> <?=$satir["ogrsoyad"]?> </h5> <h6 class="card-subtitle mb-2 text-muted"><?=$satir["sinif"]?> ( <?=$satir["cinsiyet"]?>)</h6> <p class="card-text"><?=$satir["dtarih"]?></p> </div> </div> </div> </div> </div> </main> <footer></footer> </body> </html> |
[…] İlginizi çekebilir: PHP PDO Veritabanı İşlemleri (Seç, Ekle, Sil, Güncelle) […]
bu ornek in database sql ini de koyarmısınsız