2011-04-18 22 views
0

我已閱讀過「slugs」,但我仍然無法弄清楚如何使用它們。如何正確保存數據庫中的slu?聲?在php中的seo url`s

可以說我有網址類似這樣的http:/example.com/samsung/samsung_continuum_android_smartphone/

這是我做的

select category_id from categories where category_name = 'samsung' 

在那之後我也喜歡查詢

select slugs from my_table where category_id = (lets say 3 where is samsung) 

結果類似於 samsung_continuum_android_smartphone samsung_some_other_phone。

在那之後我可以做這樣的事情

select * from info where title = 'samsung_continuum_android_smartphone' 

,以獲取有關產品的信息。這是做到這一點的正確方法嗎?

+0

請看相關主題 – Kemo 2011-04-18 19:29:37

+0

可能出現的重複[使用PHP的SEO友好URL到動態URL](http://stackoverflow.com/questions/2915304/seo-friendly-url-to-dynamic-url-using-php ) – 2011-04-18 19:30:56

+0

@Marc BI認爲我的問題與您建議的鏈接無關 – Zaharev 2011-04-18 19:37:32

回答

0

你會有點過度的,slu are與獨特的識別號碼完全相同的原則,唯一的區別是slu represents代表自然語言,便於閱讀以及搜索引擎優化。

現在我看到您執行2個查詢來獲取與slug匹配的行,因爲您應該只從您的信息中選擇1行,其中slug與容器匹配。

例如:

SELECT * FROM categories WHERE category_slug = 'samsung'; 

category_slug會同樣category_id獨特,從而消除任何衝突的可能發生的。

現在,如果您構建您的表格方案,以便slu are只能取得類別的uniq,這將消除衝突,但每個slu for對於該類別都需要是唯一的,然後您可以從該類別中選擇正確的帖子發佈表按類別過濾。

SELECT * FROM posts WHERE category_id = (SELECT category_id FROM categories WHERE category_slug = 'sumsung') AND WHERE post_slug = 'this_would_be_the_slug_for_the_post' 

這兩個值都可以從$_GET中拉出來並放到上面的SQL String中。