在两页内连接数据

时间:2017-04-23 11:29:33

标签: javascript php html mysql phpmyadmin

我有两个页面,如一般博客文章,1页作为文章的小预览和1页全文。每个小型预览文章都有一个名为“Read More”的按钮,当用户点击它时,所有文章都会在单独的页面中打开。我上传的文章包含列ID,名称,作者,标题,文章和日期。在第1页,所有文章的预览都完美地从数据库中检索,但“READ MORE”按钮不能正常工作。当点击任何文章预览的“阅读更多”时,根据预览,只显示第一篇文章而不是不同的文章。 这是代码
第1页(预览页面)

<?php 
$db = mysqli_connect("localhost", "root", "", "myblogs.com");
$sql = "SELECT * FROM blogs";
$result = mysqli_query ($db, $sql);
while ($row = mysqli_fetch_array($result)){ 
  echo "        <div class='date-posts'>

<a href='index.php'>".$row['title']."</a></h1>
</div>
<div>".$row['author']."</div>

<div><img src='blogs/".$row['image']."'><div class='blogsampletext'>".$row['article']."</div>
<a href='page2.php.'>Read More</a>
</div>
";        
}
?>

第2页(显示完整的文章文字)

<?php

$db = mysqli_connect("localhost", "root", "", "myblogs.com");
$sql = "SELECT * FROM blogs LIMIT 1";
$result = mysqli_query ($db, $sql);
while ($row = mysqli_fetch_array($result)){
 echo "<tr><td colspan='2' align='center'><h2>".$row['title']."</h2><br>
 <img src='blogs/".$row['image']."'><br>
 <h4>".$row['author']."</h4>
 </td></tr>";
 echo "<tr><td colspan='2'><hr>".$row['article']."</td></tr>";


  }

?> 

1 个答案:

答案 0 :(得分:0)

您指向下一页的链接不完整:它不包含对您要阅读的文章的引用。

您没有提及主键,因此,对于此示例,我们假设它被称为id

您的链接应采用以下形式:

<a href='page2.php?id={$row['id']}'>

这将包括id作为查询字符串。

接下来,您的第二页应该获得id并使用它:

$id=intval($_GET['id']);
$sql = "SELECT * FROM blogs WHERE id=$id";

通常在使用用户数据时需要担心SQL注入,但intval函数会处理这个问题。

您不再需要LIMIT,因为根据定义,主键是唯一的。

由于您依赖于用户遵循正确的步骤,因此您会留下一点暴露:

  • 如果用户以某种方式进入第二页而不通过第一页,则需要根本不允许输入。您可以通过阅读第一个id作为默认设置来完成此操作。
  • 由于您使用GET作为方法,恶意用户可以通过添加id=nastystuff或更糟糕的东西来破坏事物。在这种情况下,由于它应该是一个整数,intval会将未知的任何内容转换为0