我有一个带有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))
?>
我还有一个完整课程内容的文件 - 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代码中有一些我找不到的错误。感谢任何帮助。
P.S。我是php的初学者。
答案 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 。