我有两个表,Post
和Category
。
文章
pid title result content cid
1 Option1 Opt content1 2
2 Option2 Opt content2 2
3 Option3 Opt content3 3
cid cname
1 Cat 1
2 Cat 2
3 Cat 3
这是我的insert.php。
mysql_connect('localhost','root','');
mysql_select_db("database") or die("Unable to select database");
$title=$_POST['post_title'];
$result=$_POST['post_result'];
$content=$_POST['post_content'];
$sid=$_POST['cid'];
$date=$_POST['date'];
$insertquery="INSERT INTO review (post_title,post_result,post_content,cid,date)
VALUES('$title','$result','$content',$sid,NOW())";
$result=mysql_query($insertquery);
if(! $result )
{
die('Could not enter data: ' . mysql_error());
}
else {
echo "Entered data successfully'n";
header('Location:home.php');
}
这是我的cat.php显示特定类别的帖子。
$link = mysql_connect("localhost","root","");
mysql_select_db("database");
$query="SELECT * FROM category WHERE cid='$cid'";
$result = mysql_query($query) or die("Query to get data failed with error: ".mysql_error());
while($row = mysql_num_rows($result)) {
echo //details goes here
}
这是我主页上的分类菜单列表。
<ul>
<li><a class="my-button" href="#">Cat 1</a></li>
<li><a class="my-button" href="#">Cat 2</a></li>
<li><a class="my-button" href="#">Cat 3</a></li>
</ul>
这是javascript。
<script>
$(document).ready(function() {
$('body').on('click', '.my-button', function() {
$("#display").load("cat.php");
});
});
</script>
所有内容都正确插入到数据库中。但是我不能显示特定类别的文章。
我给出了完整的代码。我想要的是,当我在主页上点击1类或2类或3类时,我需要在#display
div中显示所选类别的帖子表中的所有数据。
我得到一个错误说:
cid是未定义变量
请帮我找到正确的代码。
这是因为查看查询中使用的脚本$cid
没有在任何地方定义。值得称赞的是,至少有错误报告。下次您真的应该阅读并理解您得到的错误消息,因为这通常会告诉您问题所在。
另外,你真的需要考虑学习mysqli或PDO。mysql_*
已废弃,不应再使用。你也有严重的SQL注入漏洞,所以你应该仔细研究一下该怎么做。
我觉得你走错路了。您没有向cat.php发送任何数据,因此$cid未定义。将类别id发送到load.php以获得有效的结果。比如
$("#display").load("cat.php",{cid: yourvalue});