0

我正在生成 AJAX 调用的 url,就像我在这里解释的那样。(请看这个帖子,了解实际是必要的)。

一些 url 有特殊的字符,所以会是这样的:

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添加了一个新的列,并带有漂亮的 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 中我做了一个漂亮的列到数据库中的普通列的转换。

我认为这是做我想做的事情的唯一方法,不是吗?任何帮助或建议将不胜感激,如果您需要更多信息,请告诉我,我将编辑帖子。

4

1 回答 1

2

你在做什么是正确的。URL 中的值只是参数,因此您可以使用它们从数据库中选择行。当您解析 URLhttp://myweb.com/nino/pullbear/jacket-shirt-pants/23时,它会返回类似

<?
$sex = 'nino';
$brand = 'pullbear';
$description = 'jacket-shirt-pants';
$age = '23';
?>

然后,您可以使用该信息从数据库中选择某些内容。为简单起见,我将连接查询,但请确保您进行一些验证或使用参数化查询

<?
//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
?>

请记住,如果您想唯一标识单个产品,最好在、和ANDUNIQUE INDEX的组合列上创建一个。SEX_PRETTYBRAND_PRETTYDESCRIPTION_PRETTYAGE

另外,由于您正在谈论使用 JSON,请记住并非所有特殊字符都被允许,因此您可能需要在输出中对它们进行编码。检查json-character-encoding

于 2013-05-28T07:35:05.620 回答