2012-04-10 84 views
-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>'; 
    } 
} 
} 
?> 
+1

你有沒有試過尋找你從哪裏複製* *? – 2012-04-10 06:32:10

+2

我建議不要盲目複製粘貼代碼來進行數據庫交互。 (a)不太可能滿足您的需求,(b)跳過您需要實際創建數據庫驅動應用程序的基本理解。 – Amber 2012-04-10 06:32:23

+0

「我如何定義$ db?注意:未定義的變量:db」@我不知道。我們不能僅僅猜測你的代碼是什麼。如果您要複製並粘貼代碼,最好先理解它的作用。我建議閱讀OOP PHP。祝你好運。相對用戶名btw「come2gether」。確實。 – Flukey 2012-04-10 06:51:54

回答

1

這將證明覆雜的,如果你不使用面向對象的PHP,但你需要建立你的對象。例如MySQLi類constructor需要用戶,密碼,數據庫等,然後知道它應該連接到哪裏。

在你使用像$ db-> get_results之類的東西之前,你需要構造你的DB對象。現在我不認識get_results函數,所以我認爲它是一個定製的DB類。如果你想知道該怎麼做,你應該看到該特定類的文檔。

+0

好吧,我可以使用我已有的代碼進行修改。 – arboles 2012-04-10 06:37:39

0

代碼看起來很複雜,但是如果你想寫那樣的話$db->get_results。您必須在使用主機名,用戶,數據庫和密碼設置數據庫連接的構造函數中創建一個Database類。

之後,你在類中定義的方法get_result,然後就創建了該類像$dg=new Database();的對象,然後就可以使用$db->get_result

0

而不是教你 - 這樣可以把這裏的答案太長,通過PHP的面向對象的網頁有一個讀:http://php.net/manual/en/language.oop5.php

它不會佔用你多長時間,並會幫助你瞭解的基礎知識,並幫助解決您將繼續使用OO代碼遇到的任何問題。