我正在生成AJAX调用的url,就像我解释here一样。 (请看一下这篇文章,了解实际情况是必要的。)
有些网址有特殊字符,所以会像:
http://myweb.com/ni%C3%B1o/pull%26bear/jacket%20shirt%20pants%20underwear%20hat/23
我想创建友好的URL删除一些字符并限制第三个参数最多只有三个字。结果将是这样的:
http://myweb.com/nino/pullbear/jacket-shirt-pants/23
所以php将能够知道我传递的参数我在我的数据库中为每个 VARCHAR 添加了一个新的colum,其中包含了漂亮的url转换。我解释一下这样的事情:
ID SEX SEX_PRETTY BAND BRAND_PRETTY DESCRIPTION DESCRIPTION_PRETTY AGE
1 NIÑO NINO PULL&BEAR PULLBEAR JACKET SHIRT PANTS UNDERWEAR HAT JACKET-SHIRT-PANTS 10
2 NIÑA NINA ZARA ZARA JEANS BIKINI DRESS SWEATER JEANS-BIKINI-DRESS 13
AJAX调用php,在php中我在数据库中执行 very colum to normal colum 转换。
我认为这是我想要的唯一方法,不是吗?任何帮助或建议将不胜感激,如果您需要更多信息,请告诉我,我将编辑该帖子。
答案 0 :(得分:2)
你在做什么是正确的。 URL中的值只是参数,因此您可以使用它们从数据库中选择行。当您解析网址http://myweb.com/nino/pullbear/jacket-shirt-pants/23
时,它会返回类似
<?
$sex = 'nino';
$brand = 'pullbear';
$description = 'jacket-shirt-pants';
$age = '23';
?>
然后,您可以使用该信息从数据库中选择一些内容。为简单起见,我将查询查询,但请确保您执行了一些validation or use parameterized queries
<?
//WARNING: POSSIBLE UNSAFE EXAMPLE, DONT USE DIRECTLY IN PRODUCTION
$query = "SELECT * FROM Table WHERE SEX_PRETTY='$sex' AND BRAND_PRETTY='$brand' AND DESCRIPTION_PRETTY='$description' AND AGE='$age'";
//now in your results you can use the `SEX`, `BRAND` and `DESCRIPION` columns to show information
?>
请注意,如果您想要唯一标识单个产品,最好在UNIQUE INDEX
,SEX_PRETTY
,BRAND_PRETTY
的组合列上创建DESCRIPTION_PRETTY
和AGE
。
此外,由于您正在讨论使用JSON,请记住并非所有特殊字符都被允许,因此您可能需要在输出中对它们进行编码。查看json-character-encoding