PHP:$ _GET不从MySQL数据库中检索数据

时间:2015-12-23 07:48:16

标签: php mysql get

我有一个带有mysql数据库的博客类型的php网站。这个博客有一些教训。有一个表“课程”,其中包含id,标题,课程文本等。 当我在主页上显示最后一课时,它的工作正常。

我像这样连接到db:

<?php 
$db = mysql_connect ("localhost", "root", "");
mysql_select_db("kursach", $db);
mysql_query("SET NAMES utf8");

$result = mysql_query ("SELECT title, meta_k, meta_d, text FROM settings
WHERE page='index' ", $db);

$myrow = mysql_fetch_array($result);
?>

并使用循环显示它们:

<?php 
$result = mysql_query("SELECT id, title, date, description FROM lessons", $db);

$myrow = mysql_fetch_array($result);
do {
  printf ("<div class='right-column-content'>
    <div class='right-column-content-heading'>
      <a href='lesson_view.php?%s'><h1>%s</h1></a>
      <h2>%s </h2>
    </div>
    <div class='right-column-content-content'>
      <p>%s</p>
      <div class='button'><a href='lesson_view.php?%s' >Читати далі</a></div>
    </div>
  </div>", $myrow['id'], $myrow["title"], $myrow["date"], $myrow["description"], $myrow["id"]);
}
while($myrow = mysql_fetch_array($result))
 ?>

Screenshot

我还有一个完整课程内容的文件 - lesson_view.php。正如您在上面的代码中看到的,我发送课程的ID以链接到本课程:

  lesson_view.php?%s
  $myrow["id"]

在lesson_view.php中,我连接到db并获取如下ID:

<?php 
$db = mysql_connect ("localhost", "root", "");
mysql_select_db("kursach", $db);
mysql_query("SET NAMES utf8");

if (isset($_GET['id'])) {$id = $_GET['id'];}

$result = mysql_query("SELECT * FROM lessons WHERE id = '$id' ", $db);

$myrow = mysql_fetch_array($result);
?>

并使用此代码显示数据:

<div class="right-column-content">
    <div class="right-column-content-heading">
      <h1><?php echo $myrow['title'] ?></h1>
      <h2><?php echo $myrow['date'] ?> </h2>
      <h2><?php echo $myrow['author'] ?> </h2>
    </div>
    <div class='right-column-content-content'>
      <p><?php echo $myrow["text"] ?></p>
    </div>
  </div>

问题是,当我试着查看课程的全部内容时(例如,/ noton_view.php?1),它不显示任何数据:没有标题,没有文本,没有。我已经在MySQL上直接尝试了这个查询并且它可以工作,所以,也许在PHP代码中有一些我找不到的错误。感谢任何帮助。

enter image description here

P.S。我是php的初学者。

3 个答案:

答案 0 :(得分:2)

如果您想加入$_GET id,那么您的链接应该是lesson_view.php?%s - &gt; lesson_view.php?id=%s

例如lesson_view.php?id=5表示$id = $_GET['id']将给出5,$ id = 5;

答案 1 :(得分:1)

<a href='lesson_view.php?%s'><h1>%s</h1></a>

您没有为'id'变量命名。

将链接更改为

<a href='lesson_view.php?id=%s'><h1>%s</h1></a>

答案 2 :(得分:0)

唯一的问题是你的printf()有5个参数而你只使用了4个,第四个是你在这里使用的描述

<div class='button'><a href='lesson_view.php?%s' >Читати далі</a></div>

解决方案是:

printf ("<div class='right-column-content'>
<div class='right-column-content-heading'>
<a href='lesson_view.php?%s'><h1>%s</h1></a>
<h2>%s </h2>
</div>
<div class='right-column-content-content'>
<p>%s</p>
<div class='button'><a href='lesson_view.php?id=%s' >Читати далі</a></div>
</div>
</div>", $myrow['id'], $myrow["title"], $myrow["date"], $myrow["id"], $myrow["description"]);

$myrow["id"]移到第四位置,您将获得ID作为查询字符串。

并在查询字符串中添加 ID