如何使用PHP和MySQL处理链接的数据库信息更改?

时间:2015-09-01 00:06:31

标签: php mysql

假设我有一个包含产品页面的网站,该产品页面显示有关产品的信息,该产品由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();

然后代码检查返回的行数并相应地重定向。

2 个答案:

答案 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'