我正在构建一个网页,根据URL参数来检索数据。PHP修改URL参数后从MySQL中检索数据参数
有两个可能的参数。
1:这是使用$_GET['id']
2检索id
:name
其使用$_GET['name']
检索时我使用的id
参数它像自id
一个魅力检索数据始终是一个数值和从来没有字母文字。
但是当试图使用name
参数检索数据时,我没有得到任何结果。
name参数正在检查数据库中的文章标题是参数。
例如,在URL中name
参数看起来像这样:
http://example.com/safetyarticles/view.php?name=9-clues-to-solving-this-parameter-issue
而且在数据库中的文章名称为:9 Clues To Solving This Parameter Issue
我已经写了一些行删除在我的URL参数中的破折号空格,然后大写每个单词来匹配文章名称,但我没有得到任何结果。
这是我写的代码:
$conn = getConnected("safetyArticles");
if(isset($_GET['id'])) {
$articleID = $_GET['id'];
$articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_id = $articleID");
$article = mysqli_fetch_array($articleQuery);
}
else if(isset($_GET['name'])) {
$articleName = $_GET['name'];
$articleName = preg_replace("/[\-]/", " ", $articleName); // Replace dashes in URL parameter with spaces
$articleName = ucwords($articleName); // Uppercase first letter of each word of URL parameter
$articleQuery = mysqli_query($conn, "SELECT * FROM currentArticles WHERE article_name = $articleName");
$article = mysqli_fetch_array($articleQuery);
}
据我所知,用空格替换破折号和大写每个单词应该在数据库中,$articleName
匹配article_name
。
我确实增加了一行echo $articleName
来查看输出结果是什么,结果是9 Clues To Solving The Mystery Of The Pilot Car
,它与数据库中的标题相匹配,但结果未被拉出。
我直接从数据库中拷贝出来,只是为了表明标题确实是一样的:9 Clues To Solving The Mystery Of The Pilot Car
。
我不知所措,因为所有事情都应该如此。
工作。现在我有点困惑,因为在'id'查询中,它没有它们,并且这个它需要它们。这是数字和字母的差异吗? –
可能 - 但您应该将$ articleID更改为'$ articleID'以及 – gavgrif
会这样做。谢谢您的帮助。我会尽快让我接受。 –