sülük kullanarak mysql dan getiriliyor makale

2 Cevap php

benim sitede benim kendi haber makalesi bölümünde yazılı ve mysql veritabanında her makaleye saklamak duyuyorum. Her makale benzersiz bir kimliği, bir başlık, ana gövde ve jquery eklentisi sayesinde vardır, kendi url dostu sümüklüböcek bulunuyor.

Ancak, ben kurşuna bağlarken makaleyi getiriliyor hakkında gitmek nasıl yeryüzünde emin değilim.

Nasıl alabilirim:

www.site.com/news/nice-looking-title/

: gibi çalışmak

www.site.com/news/index.php?id=1

: ben o gibi MySQL tablodan kayıt almak için SQL kullanın böylece

tbl_news:
news_id
news_title
news_slug
news_body
news_date

Bunu yaparken yer. htacccess nedir?

Her zamanki gibi, tüm ve herhangi bir yardım en takdir edilmektedir! :)

paul

2 Cevap

ok burada ben bu sorunu çözmek için yapmak zorunda budur. Biraz hacky, ama çalışıyor.

Haber dizinde php sayfasına sahip olduğu gerçeği olduğu gibi sahip RewriteRule (. *) / News / index.php, sitede sonsuz bir döngüye neden olur. Yani ben farklı bir dizin adı bağlantılar göndermek zorunda kaldı ve gerçek dizine yeniden oylandı.

.htaccess

RewriteCond %{REQUEST_URI} /guild-news
RewriteRule guild-news/(.*)/ news/news-item.php?slug=$1
RewriteRule guild-news/(.*) news/news-item.php?slug=$1

PHP

$slug=$_GET['slug'];
$newsSQL = "SELECT *, DATE_FORMAT(news_date, '%W, %D %M, %Y') news_date_f FROM tbl_news WHERE news_slug = '".$slug."' AND news_visible=1";
$result = mysql_query($newsSQL, $conn) or die(mysql_error());

bu yüzden muhtemelen en iyi şimdiye kadar kod, ama benim ihtiyaçları için güçlü ince çalışır :)

Sen news_slug yerine news_id göre seçmek için SQL sorguyu değiştirmek gerekir. Aşağıdaki gibi basit bir uygulama olabilir:

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/news #only do this for URLs beginning /news
RewriteRule (.*) /news/index.php [L] #redirect control to index.php

PHP

$slug = explode('/', $)SERVER['REQUEST_URI']); // turn the path into an array
$slug = $slug[2]; // get the 2nd part of the array (nice-looking-title)
$query = sprintf ("SELECT * FROM tbl_news WHERE news_slug = '%s'", $slug); // new SQL query

NOTE: THIS HAS NOT BEEN TESTED SO MAY HAVE ERRORS!