2015-12-02 4 views
0

Я разрабатываю свой собственный сайт PHP Mysql.Извлечение статьи из mysql db с slug url

Я использовал для получения данных по идентификатору, как это: mysite.com/articles.php?id=12

теперь я хочу, чтобы изменить URL с Slug:

mysite.com/articles/google-search

или

mysite.com/articles.php?article=google-search

I Не хотите использовать идентификаторы и номера.

Моего стол:

+----+---------------+---------+------------------------------------+ 
| id | title   | article | urlslug       | 
+----+---------------+---------+------------------------------------+ 
| 12 | google search | xxxxxxx | google-search     | 
| 13 | bing yahoo | xxxxxxx | bing-yahoo      | 
| 14 | friendly seo | xxxxxxx | friendly-seo      | 
+-------------------------------------------------------------------+ 

Я использовал ниже код, чтобы получить данные по идентификатору:

$id = $_GET['id']; 
$id = mysqli_real_escape_string($conn,$id); 
$query = "SELECT * FROM `table` WHERE `id`='" . $id . "'"; 
$result = mysqli_query($conn,$query); 

while($row = mysqli_fetch_array($result)) { 
echo ($row['title']); 
echo ($row['article']); } 

Я попытался выше код, заменив urlslug нем говорит Invalid ID specified. Я гугл и даже искал в вопросах стека я не получал никакой помощи. Пожалуйста, помогите мне. Заранее спасибо.

+0

вы можете повторить 'Эхо $ _GET [ 'id']; ' – uno

ответ

1

Если URL, как это mysite.com/articles.php?article=google-search то вместо id получить article из URL и изменить условие urlslug вместо идентификатора.

$slug = $_GET['article']; 
$slug = mysqli_real_escape_string($conn,$slug); 
$query = "SELECT * FROM `table` WHERE `urlslug`='" . $slug. "'"; 
$result = mysqli_query($conn,$query); 

//Since slug is unique you will get only 1 result so no need to loop 

$row = mysqli_fetch_array($result); 
echo $row['title']; 
echo $row['article'];  
+0

У меня есть 500 статей, как can ic ода таким образом. – dan

+0

слизень должен быть уникальным. поэтому вам не нужно беспокоиться о количестве статей. –

+0

bro in christ, im совершенно новый к этому. я попробовал так, как предположил, но он говорит, что неверный идентификатор указан – dan

0

Вы можете использовать следующее правило в корне/.htaccess

RewriteEngine On 


RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^articles/([^/]+)/?$ /articles.php?id=$1 [NC,L] 

будет переписан

example.com/articles/123 

в

example.com/articles.php?id=123 
Смежные вопросы