Bu dersimizde PHP ile PDO kullanarak veritabanından veri listelemeyi öğreneceğiz.
PHP PDO ile veri listeleme işlemi için öncelikle veritabanı bağlantısı yapılıp uygun SQL komutunun yazılması gerekmektedir.
PHP PDO ile veri seçme işlemi SELECT isimli SQL komutu ile yapılır.
Sadece belirli sütunları seçmek için aşağıdaki komut kullanılır.
SELECT sutun1, sutun2,sutunN FROM tablo_adi
Tablodaki tüm sütunları seçmek için sütun yerine sadece yıldız * karakterinin yazılması gerekiyor.
SELECT * FROM tablo_adi
Veri listeleme işlemi PHP PDO ile veri çekme işlemine benzemektedir. Veri listeleme işleminde ayrıca döngü yardımı ile tüm verilerin listelenmesi sağlanır.
<?php try { $baglanti = new PDO("mysql:host=localhost;dbname=dbadi", "dbkullaniciadi", "dbsifre"); $baglanti->exec("SET NAMES utf8"); $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sorgu = $baglanti->query("SELECT kisi_adi, kisi_soyadi, kisi_eposta FROM kisiler"); while ($cikti = $sorgu->fetch(PDO::FETCH_ASSOC)) { echo "Ad: " . $cikti["kisi_adi"] . "<br /> Soyad: " . $cikti["kisi_soyadi"] . "<br /> E-Posta: " . $cikti["kisi_eposta"] . "<hr />"; } } catch (PDOException $e) { die($e->getMessage()); } $baglanti = null; ?>
Veri listeleme işlemi prepare metodu içinde aynıdır.
<?php try { $baglanti = new PDO("mysql:host=localhost;dbname=dbadi", "dbkullaniciadi", "dbsifre"); $baglanti->exec("SET NAMES utf8"); $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sorgu = $baglanti->prepare("SELECT * FROM kisiler"); $sorgu->execute(); while ($cikti = $sorgu->fetch(PDO::FETCH_ASSOC)) { echo "Ad: " . $cikti["kisi_adi"] . "<br /> Soyad: " . $cikti["kisi_soyadi"] . "<br /> E-Posta: " . $cikti["kisi_eposta"] . "<hr />"; } } catch (PDOException $e) { die($e->getMessage()); } $baglanti = null; ?>
PDOStatement sınıfı ayrıca foreach döngüsü ile de veri listeleme için kullanılabilir.
<?php try { $baglanti = new PDO("mysql:host=localhost;dbname=dbadi", "dbkullaniciadi", "dbsifre"); $baglanti->exec("SET NAMES utf8"); $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sorgu = $baglanti->prepare("SELECT kisi_adi, kisi_soyadi, kisi_eposta FROM kisiler"); $sorgu->execute(); foreach ($sorgu as $cikti) { echo "Ad: " . $cikti["kisi_adi"] . "<br /> Soyad: " . $cikti["kisi_soyadi"] . "<br /> E-Posta: " . $cikti["kisi_eposta"] . "<hr />"; } } catch (PDOException $e) { die($e->getMessage()); } $baglanti = null; ?>
Veri listeleme işleminde önemli olan verinin uygun bir şekilde yazdırılmasıdır.
<?php try { $baglanti = new PDO("mysql:host=localhost;dbname=dbadi", "dbkullaniciadi", "dbsifre"); $baglanti->exec("SET NAMES utf8"); $baglanti->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sorgu = $baglanti->prepare("SELECT * FROM kisiler"); $sorgu->execute(); $html = "Kişiler: <br />"; $html .= "<select>"; while ($cikti = $sorgu->fetch(PDO::FETCH_ASSOC)) { $html .= "<option>" . $cikti["kisi_adi"] . " " . $cikti["kisi_soyadi"] . "</option>"; } $html .= "</select>"; echo $html; } catch (PDOException $e) { die($e->getMessage()); } $baglanti = null; ?>
Yukarıdaki örnekte veriler açılır menü formatında listelendi. Benzer olarak tablo veya farklı bir tasarıma göre de veri listeleme işlemi yapılabilmektedir.