Im developing my own PHP Mysql site.
I used to fetch data by id like this : mysite.com/articles.php?id=12
now i want to change the url with slug:
mysite.com/articles/google-search
or
mysite.com/articles.php?article=google-search
I dont want to use id and numbers.
My table:
+----+---------------+---------+------------------------------------+
| id | title | article | urlslug |
+----+---------------+---------+------------------------------------+
| 12 | google search | xxxxxxx | google-search |
| 13 | bing yahoo | xxxxxxx | bing-yahoo |
| 14 | friendly seo | xxxxxxx | friendly-seo |
+-------------------------------------------------------------------+
I used the below code to get data by id:
$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']); }
I tried the above code by substituting urlslug it says Invalid ID specified.
I googled and even searched in stack questions i didnt get any help. Please assist me. Thanks in advance.
If url is like this mysite.com/articles.php?article=google-search
then instead of id
get the article
from url and change the condition to urlslug
instead of id.
$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'];