php – MySQL:按行ID在永久链接中显示内容
作者:互联网
我正在尝试创建自己的CMS,我在php和mysql中都是新手.让我谈谈这一点:
到目前为止,我已经在索引页面中创建了“阅读更多”永久链接的新闻(这意味着,当我按下阅读更多时,它会将我移动到其他页面,例如/readmore.php?id=[news ID]并且在该页面中只有content是那些特定的新闻,即表中的特定行.我坚持的是在该永久链接中获取该特定行ID.
让我展示一下目前适合我的代码.
带有新闻的索引文件:
while($row = mysql_fetch_array($result))
{
/*... title, news content... */
echo "<a href='readmore.php?id=".$row['ID']."'>".$read_more_link."</a></div>";
}
具有精确行的readmore.php(例如readmore.php?id = 1201):
$params = $_SERVER['QUERY_STRING'];
$str = $params;
$id1 = $str[strlen($str)-1];
$id2 = $str[strlen($str)-2];
$id3 = $str[strlen($str)-3];
$id4 = $str[strlen($str)-4];
$news_id = "$id4$id3$id2$id1";
$query = "SELECT * FROM naujiena WHERE ID='$news_id'";
基本上它是什么,它从地址栏恢复4个最后数字并搜索具有该4位ID的那些新闻
这是一种非常原始的方式,但我已经坚持了几天,无法找到出路.
我以前尝试过的是在while($row = mysql_fetch_array($result))循环中创建一个带会话的变量,它在索引页面中显示ID,但在readmore页面中只显示最后一个或者第一个(取决于desc或asc)这是非常明显的期望
你能帮助我吗?我会很感激.
解决方法:
您可以在$_GET数组中按名称访问查询字符串中的值.
例如,$_GET [‘id’]将是id =< ID>的值.查询字符串的一部分.它适用于查询字符串的每个字段.
// url : readmore.php?id=1201
$news_id = intval($_GET['id']);
// now, $news_id contains the value 1201
$query = "SELECT * FROM naujiena WHERE ID='$news_id'";
您可以阅读官方帮助:$_GET
或您可以在网上找到的各种教程之一:http://www.w3schools.com/php/php_get.asp
更新
既然你接受了我的答案,我觉得有必要对SQL注入说一句话.您应该始终清理在mysql_real_escape_string
的SQL查询中使用的任何输入.您可以在Wikipedia上找到更多详细信息:SQL injection或PHP文档:SQL Injection.
由于您的ID是数字值,因此您也可以确保这一点.我更新了代码片段以使用intval
执行此操作.
标签:php,mysql,permalinks 来源: https://codeday.me/bug/20190902/1789825.html