我目前正在创建一个新闻博客,我想展示博客的小片段,让用户点击“阅读更多”,如果他们想了解更多信息(见下图)
在“阅读更多”按钮上,我将它链接为这样。
<a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/notices/notice.php?id=<?=$image["id"] ?>">Read More</a>
然后在notice.php页面上,我试图像这样导入帖子:(数据库名称为knollsnews)
<?php
$result = mysql_query("SELECT ID FROM knollsnews WHERE id='$id'");
while ($image=mysql_fetch_array($images))
{
?>
我不确定我在这里做错了什么。问题是帖子没有出现在notice.php页面上。
以下是完整代码:
<?php
$result = mysql_query("SELECT ID FROM knollsnews WHERE id='$id'");
while ($image=mysql_fetch_array($images))
{
?>
<li data-id="id-<?=$image["id"] ?>">
<article class="postwhite">
<h2 style="margin: 10px 0 !important;"><?=$image["title"] ?></h2>
<img alt="<?=$image["title"] ?>" src="http://<?php echo $_SERVER['SERVER_NAME']; ?>/knolls_file_manager/source/NoticesImages/<?=$image["file_name"] ?>" class="img-max" title="<?=$image["title"] ?>">
<div class="newsdate" style="margin: 10px 0 !important;"><?= date("F d, Y", strtotime($image["date"])); ?></div>
<p class="articletext"><?=$image["description"] ?></p>
</article>
</li>
<?php
}
?>
最终工作代码ON notice.php页面
<?php
$id = (int) $_GET['id'];
$result = mysql_query("SELECT * FROM knollsnews WHERE id='$id'");
while ($image = mysql_fetch_array($result))
{
?>
<li data-id="id-<?=$image["id"] ?>">
<article class="postwhite">
<h2 style="margin: 10px 0 !important;"><?=$image["title"] ?></h2>
<img alt="<?=$image["title"] ?>" src="http://<?php echo $_SERVER['SERVER_NAME']; ?>/knolls_file_manager/source/NoticesImages/<?=$image["file_name"] ?>" class="img-max" title="<?=$image["title"] ?>">
<div class="newsdate" style="margin: 10px 0 !important;"><?= date("F d, Y", strtotime($image["date"])); ?></div>
<p class="articletext"><?=$image["description"] ?></p>
</article>
</li>
<?php
}
?>
答案 0 :(得分:1)
您需要从URL获取值并将其设置为$ id:
$id= $_GET['id'];
然后你必须这样做:
$result = mysql_query("SELECT ID FROM knollsnews WHERE id='$id'");
while ($image=mysql_fetch_array($images))
{
//do something
}
答案 1 :(得分:1)
要从网址获取ID,请使用$_GET['id']
答案 2 :(得分:1)
正如其他人指出的那样,您必须使用$_GET['id']
从URL获取id参数。另外,你的while循环说
$result = mysql_query("SELECT ID FROM knollsnews WHERE id='$id'");
while ($image=mysql_fetch_array($images))
应该说什么
$result = mysql_query("SELECT ID FROM knollsnews WHERE id='$id'");
while ($image = mysql_fetch_array($result))
除此之外,your code is open to SQL Injection如果您没有sanitize the input或更改查询以使用预准备语句。至少,使用
$id = (int) $_GET['id'];
确保id确实是一个数字而不是一些恶意SQL。
此外,您使用的是officially deprecated旧的mysql扩展,很快就会从PHP中删除。考虑使用PDO或MySqli