从数据库ID导入发布

时间:2014-02-08 17:29:10

标签: php mysql

我目前正在创建一个新闻博客,我想展示博客的小片段,让用户点击“阅读更多”,如果他们想了解更多信息(见下图)

enter image description here

在“阅读更多”按钮上,我将它链接为这样。

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

3 个答案:

答案 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