Как создать чистый URL-адрес извлечения данных из MySQL в PHP? - PullRequest
0 голосов
/ 15 ноября 2018

Я хочу знать, как создать URL напрямую , динамически выбирая данные из mysql в php?

Предположим, у меня есть таблица базы данных с именем "Продукты":

1) id
2) seller_id
3) Product Code
4) Product Image
5) Product Description
  • Предположим, что в него добавлено 5000 товаров или более.
  • Предположим, мое доменное имя: www.xyz.com

Теперь я хочу создать URL-адреса из идентификаторов продавца таблицы продуктов, таких как www.xyz.com/sellerid1

.

Если добавлен новый идентификатор продавца, я автоматически получу URL и на этой странице получу все связанные продукты, связанные с seller_id, из таблицы "Продукты"

Я хочу URL как

www.xyz.com/sellerid1
www.xyz.com/sellerid2
www.xyz.com/sellerid3

В имени моего файла я хочу найти данные из таблицы «Продукты»: seller.php

Я не хочу, чтобы URL вроде:

www.xyz.com/seller.php?id=sellerid1
www.xyz.com/seller.php?id=sellerid2
www.xyz.com/seller.php?id=sellerid3

Я хочу, чтобы, если кто-то нажал на ссылку непосредственно в адресной строке, например: www.xyz.com/sellerid1, то все продукты, связанные с sellerid, будут показаны. Это можно сделать с помощью www.xyz.com/seller.php?id=sellerid1, но ни один пользователь не запомнит этот тип URL. Я хочу www.xyz.com/sellerid1

Извините, два вопроса в одном, но я не знаю, как этого добиться динамично.

Любые идеи или предложения приветствуются.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

У вас есть таблица продавцов? если да, то вы можете выбрать продавцов из таблицы и создать ссылку динамически.

запрос:

SELECT id, name FROM tbl_sellers WHERE enabled=1 LIMIT 10;

html (index.php):

$result = []; // execute $query

// loop on result
foreach($result as $item)
    echo "<a href=\"www.xyz.com/seller.php?id=sellerid{$id}\">{$name}</a>";

seller.php:

// Getting request id from url parameters and cast to integer
    $sellerId = (int)str_replace('sellerid', '', isset($_REQUEST['id']) ? $_REQUEST['id'] : '');

    if(!$sellerId || $sellerId < 1){
        exit('Seller not found.');
    }


    $query = "SELECT * FROM tbl_products WHERE seller_id='{$sellerId}'";
    $result = []; // execute $query

    // fetch query
    exit(var_dump($result));
0 голосов
/ 15 ноября 2018

Использование ядра php здесь. добавьте следующие строки в ваш файл .htaccess. Предполагается, что ваш файл по умолчанию - index.php.

RewriteEngine on

RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
RewriteRule ^seller/([^/]+)$ seller.php?sellerid=$1

Теперь, когда вы попытаетесь открыть URL http://www.yoururl.com/seller/{your_dynamic_seller_id_comes_here}., предположим, что вы открываете URL http://www.yoururl.com/seller/1, тогда вы получите динамический идентификатор продавца из приведенного ниже кода (seller.php).

<?php
$sellerid = $_GET['sellerid'];
//get the result from database query 

$dbquery = "SELECT * FROM Products WHERE seller_id='$sellerid' ";
//execute the above query and use the result and do your stuff.

?>

Надеюсь, это поможет вам.

0 голосов
/ 15 ноября 2018

Возможно, вы можете использовать MVC-фреймворк, такой как Laravel, Codeigniter, или другой фреймворк, использующий MVC. MVC Framework, можете делать, именно так, как вы хотите, например

www.xyz.com/sellerid1

или Вы можете сделать это, но ссылка не выглядит как

www.xyz.com/sellerid1

но как

www.xyz.com/sellerid/1

index.php:

<?php
//get request url
$request_uri = explode('/', $_SERVER['REQUEST_URI']);
// print_r($request_uri);
if($request_uri[2]=='sellerid'){
    include 'test.php';
}
?>

test.php:

<?php  
    echo $request_uri[2].'/'.$request_uri[3];
?>

.htaccess:

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

А как создать ссылку это как:

<?php  
    $url="http://www.example.com/";
    $theproduct=array(...);//Fill with your sellerid
    foreach ($theproduct as $key) {
        ?>
            <a href="<?=$url.'sellerid/'.$key['seller_id']?>"></a>
        <?php
    }
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...