-2

但是,由于我对 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>'; 
    } 
} 
} 
?>
4

3 回答 3

1

如果您不习惯面向对象的 PHP 但您需要构造对象,这将证明是复杂的。例如, MySQLi 类构造函数接受用户、密码、数据库等,然后知道它应该连接到哪里。

在你可以使用像 $db->get_results 这样的东西之前,你需要构造你的 DB 对象。现在我不认识 get_results 函数,所以我认为它是一个自定义构建的 DB 类。如果您想知道该怎么做,您应该查看该特定类的文档。

于 2012-04-10T06:35:14.660 回答
0

代码看起来很复杂,但如果你想这样写$db->get_results。您必须在使用主机名、用户、数据库和密码设置数据库连接的构造函数中创建一个数据库类。

之后,您在该类中定义一个方法get_result,然后创建该类的对象,$dg=new Database();然后您可以使用$db->get_result.

于 2012-04-10T06:48:01.187 回答
0

与其教你——这里的答案需要很长时间,而是阅读 PHP 的 OO 页面: http: //php.net/manual/en/language.oop5.php

它不会花费您很长时间,并且会帮助您了解基础知识,并帮助解决您在使用 OO 代码时不断遇到的任何问题。

于 2012-04-11T09:47:03.087 回答