但是,由于我对php中的oop不太熟悉。 我不确定我需要将$db变量定义为什么,以便正确查询我的数据库。他们是我可以编辑此代码的一种方式,因此它避开了$db并使用了不同的方法,该代码正在使用 ajax 加载更多帖子。错误在第 24 行
<html>
<head>
<script>
$(document).ready(function(){
$("#loadmorebutton").click(function (){
$('#loadmorebutton').html('');
$.ajax({
url: "loadmore.php?lastid=" + $(".postitem:last").attr("id"),
success: function(html){
if(html){
$("ul#posts").append(html);
$('#loadmorebutton').html('Load More');
}else{
$('#loadmorebutton').replaceWith('No more posts to show.');
}
}
});
});
});
</script>
</head>
<body>
<?php
if($posts = $db->get_results("SELECT id,text FROM posts ORDER BY id DESC LIMIT 10")) {
echo '<ul id="posts">';
foreach($posts as $post) {
echo '<li class="postitem" id="'.$post->id.'">'.$post->text.'</li>';
}
echo '</ul>';
}
?>
<button id="loadmorebutton">Load More</button>
</body>
</html>
加载更多
<?php
if($_GET['lastid']){
if($posts = $db->get_results("SELECT id,text FROM posts WHERE id < ".$db- >escape($_GET['lastid'])." ORDER BY id DESC LIMIT 10")) {
foreach($posts as $post) {
echo '<li class="postitem" id="'.$post->id.'">'.$post->text.'</li>';
}
}
}
?>
如果你不习惯面向对象的PHP,但你需要构造你的对象,这将证明是复杂的。例如,MySQLi类构造函数获取用户,密码,数据库等,然后知道它应该连接到哪里。
在使用 $db->get_results 之类的东西之前,您需要构造数据库对象。现在我不认识get_results函数,所以我认为它是一个自定义构建的数据库类。如果您想知道该怎么做,您应该会看到该特定类的文档。
代码看起来很复杂,但如果你想像这样写$db->get_results
.您必须在使用主机名、用户、数据库和密码设置数据库连接的构造函数中创建一个数据库类。
之后,您在该类中定义一个get_result的方法,然后创建该类的对象,如$dg=new Database();
,然后您可以使用$db->get_result
.
与其教你 - 在这里回答需要太长时间,不如通读 PHP 的 OO 页面:http://php.net/manual/en/language.oop5.php
它不会花费您很长时间,并将帮助您了解基础知识,并帮助解决您使用 OO 代码不断遇到的任何问题。