假设我有一个包含产品页面的网站,该产品页面显示有关产品的信息,该产品由product.php使用产品名称上的GET生成并从MySQL数据库获取信息。现在,偶尔会有产品名称发生变化。这种情况很少发生,但会发生。
更改名称后,www.website.com/product.php?productname=Toaster400的旧链接将不再显示。但是,我希望这些链接重定向到正确的页面。我还想让人们搜索" Toaster400"即使更正的名称是" Toaster400a"。
我想到的只有一个解决方案就是在MySQL的旧名称中有一个表格。'如果在产品表中找不到产品,那么我可以查看旧名称'表并查看旧名称与哪个产品相关。
这是评价这个的最好方法吗?谢谢。
谢谢。
编辑:
以下是代码:
//This just initializes the database connection
require __DIR__ . "/resources/database.php";
//checks to see if they searched for anything
if(isset($_GET['search_text'])) {
$name = $_GET['search_text'];
$db = getDbConnection();
//This is a stored procedure which is literally just a select for % . ? . %
$stmt = $db->prepare("CALL get_products(?)");
$stmt->bindParam(1, $name, PDO::PARAM_STR, 150);
$isQueryOk = $stmt->execute();
$results = array();
然后代码检查返回的行数并相应地重定向。
答案 0 :(得分:0)
您可以在表格中考虑产品的“代码”列。例如:
id->1
Product name-> test
tags->test
更新后id->1
product name->testupdate
tags->test, testupdate
通过这样做,您可以搜索重命名的产品。希望这会有所帮助。:)
答案 1 :(得分:0)
表产品:product_id,product_name,description等
表历史记录:product_id,product_name
url:example.com /../ sample_name
select * from product where product_name='sample_name'
如果没有找到
select * from history h
left join product p on h.product_id=p.product_id
where h.product_name='sample_name'