PHP -阅读更多页面返回'undefined变量'错误


PHP - Read more page returns 'undefined variable' error

我做" read more "页面已经有一段时间了。我想要的是当你点击"阅读更多"时,它会重定向到新闻条目页面。

index . php

$p=mysqli_query($con, "SELECT id, titel, tekst, datum FROM nieuws LIMIT $start, $limit");
      if(mysqli_num_rows($p) > 0) {
        while ($row = mysqli_fetch_array($p)){
          $nieuws = $row['0'];
          echo "<h2>".$row['1']."</h2>";
          echo "<div class='clr'></div>";
          echo "<p>".$row['2']."</p>";
          echo "<p> Geplaatst op: ".$row['3']."</p>";
          echo "<a href='pages/nieuws.php?nieuwsitem=$nieuws'>Lees meer..</a></br></br>";
        }
      } else {
        echo "Geen items gevonden.";
      }

nieuws.php

<?php
      $con = mysqli_connect("localhost", "root", "", "groenevingers");
      if (mysqli_connect_errno()) {
        die("Failed to connect to MySQL: " . mysqli_connect_error());
      }
      $p=mysqli_query($con, "SELECT id, titel, tekst, datum FROM nieuws WHERE id='$nieuws'");
      if(mysqli_num_rows($p) > 0) {
        while ($row = mysqli_fetch_array($p)){
          echo "<h2>".$row['1']."</h2>";
          echo "<div class='clr'></div>";
          echo "<p>".$row['2']."</p>";
          echo "<p> Geplaatst op: ".$row['3']."</p>";
        }
      } else {
        echo "Item niet gevonden.";
      }
    ?>

在'nieuws.php'中,它应该显示带有id的特定新闻项。然而,我得到一个错误说"注意:未定义的变量:nieuws"。我可以理解为什么它说错误,因为我没有定义$row['0'],这是我的新闻表中的新闻id,但我无法解决它。

你们有什么办法可以帮我吗?非常感谢你的帮助。

亲切的问候,vaxzz

您可能需要像这样更改您的新闻页面代码:

<?php
    $con = mysqli_connect("localhost", "root", "", "groenevingers");
    if (mysqli_connect_errno()) {
    die("Failed to connect to MySQL: " . mysqli_connect_error());
    }
    if(isset($_GET['nieuwsitem'])) {
        $nieuws = intval($_GET['nieuwsitem']);
        $p=mysqli_query($con, "SELECT id, titel, tekst, datum FROM nieuws WHERE id='$nieuws'");
        if(mysqli_num_rows($p) > 0) {
            if ($row = mysqli_fetch_array($p)){
                echo "<h2>".$row['1']."</h2>";
                echo "<div class='clr'></div>";
                echo "<p>".$row['2']."</p>";
                echo "<p> Geplaatst op: ".$row['3']."</p>";
            }
        } else {
            echo "Item niet gevonden.";
        }
    } else {
        echo "Item niet gevonden.";
    }  
?>

这将做几件事:

if(isset($_GET['nieuwsitem'])) {

检查URL中是否有ID

$nieuws = intval($_GET['nieuwsitem']);

检索该ID并将其转换为整数,因此在查询中使用它是"安全的",它还设置了$nieuws变量

你必须在使用变量$nieuws之前定义它:nieuws.php: -

 <?php
   $con = mysqli_connect("localhost", "root", "", "groenevingers");
 $nieuws = $_GET['nieuwsitem'];
  if (mysqli_connect_errno()) {
     die("Failed to connect to MySQL: " . mysqli_connect_error());
 }
 $p=mysqli_query($con, "SELECT id, title, text, datum FROM nieuws WHERE id='$nieuws'");
 if(mysqli_num_rows($p) > 0) {
  while ($row = mysqli_fetch_array($p)){
  echo "<h2>".$row['1']."</h2>";
  echo "<div class='clr'></div>";
  echo "<p>".$row['2']."</p>";
  echo "<p> Geplaatst op: ".$row['3']."</p>";
}
} else {
  echo "Item niet gevonden.";
 }
?>