page.php?=icerik-adi olarka içeriklerimi göstermek istiyorum, pdo ile içeriği ana sayfaya alıyorum daha sonra ana sayfadan içeriğe git butonuna tıklatıp yönlendiriyorum page.php?=icerik-adi olarak gittiği yerde içerikleri nasıl gösterebilirim ?
Öncelikle tablonu şu şekilde düşünelim.
yazi_id
yazi_baslik
yazi_sef_baslik
Örnek bir konu girilmesi gerekirse.
id = 1
Başlık = Php Dersleri
Sef başlık = php-dersleri
$baslik = $_GET['sef_baslik'];
$sorgu = $db->prepare("SELECT * FROM yazilar WHERE yazi_sef_baslik=:baslik");
$sorgu->execute(array(':baslik' => $baslik));
if($sorgu->rowCount()){
$row = $sorgu->fetch(PDO::FETCH_ASSOC);
echo $row["yazi_baslik"]. " Yazısına hoşgeldiniz";
}else{
echo "Böyle bir konu yok";
}Şeklinde gösterebilirsiniz.
ÖNERİ : Bir yazıyı sadece sef linke göre kontrol ettirip çekmeyin bence. Hem seflink hem de id kontrol edilerek çekmeniz daha sağlıklı olacaktır. Böylelikle aynı konudan 2 tane açsanız bile çakışma yaşanmayacak aynı zamanda daha sağlıklı bir yapıya sahip olacaksınız. Bu söylediğim nota örnek vermek gerekirse.
//link yapısı konudetay.php?sef_baslik=php-dersleri&id=1
$id = $_GET["yazi_id"];
$baslik = $_GET['sef_baslik'];
if(!$id || !$baslik){
//eğer get ile id veya başlık adında değer gelmediyse 404.php ye yönlendir..
}else{
$sorgu = $db->prepare("SELECT * FROM yazilar WHERE yazi_sef_baslik=:baslik AND yazi_id =:id");
$sorgu->execute(array(':baslik' => $baslik, ':id' => $id));
if($sorgu->rowCount()){
$row = $sorgu->fetch(PDO::FETCH_ASSOC);
echo $row["yazi_baslik"]. " Yazısına hoşgeldiniz";
}else{
echo "Böyle bir konu yok";
}
}