2012-04-10 9 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をObjectに使用されるのではなく、あなたのオブジェクトを構築する必要がある場合、これは複雑なことを証明しようとしている

<?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

*から*をコピーした場所を探してみましたか? –

+2

データベースのやりとりを行うコードを盲目的にコピー&ペーストすることはお勧めしません。 (a)あなたのニーズに応えることはまずありませんし、(b)データベース駆動型アプリケーションを実際に作成するために必要な基本的な理解をスキップします。 – Amber

+0

"$ dbをどのように定義するのですか?Notice:未定義の変数:db" @私はわかりません。私たちはあなたのコードが何であるかを推測することはできません。コードをコピーアンドペーストする場合は、最初に何をするのかを理解することが最善です。私はOOPのPHPで読んでお勧めします。運が良かった。相対ユーザー名btw "come2gether"。確かに。 – Flukey

答えて

1

よりロード。たとえば、MySQLiクラスconstructorは、ユーザー、パスワード、データベースなどを受け取り、接続先を認識します。

$ db-> get_resultsのようなものを使用する前に、DBオブジェクトを構築する必要があります。今私はget_results関数を認識しないので、カスタムビルドDBクラスであると推測します。何をすべきかを知りたい場合は、その特定のクラスのドキュメントを参照する必要があります。

+0

OK、私は既に持っているものを使ってコードを変更することができるかもしれません。 – arboles

0

コードは複雑なようですが、そのように書く場合は$db->get_resultsとしてください。ホスト名、ユーザー、データベース、パスワードを使用してデータベース接続を設定するコンストラクタで、Databaseクラスを作成する必要があります。その後

あなたは、そのクラスにメソッドget_resultを定義し、次にあなたは$dg=new Database();のように、そのクラスのオブジェクトを作成し、あなたが$db->get_resultを使用することができます。

0

よりもむしろあなたを教える - それはここで答えを時間がかかりすぎると思い、PHPのオブジェクト指向のページを読んでいる:http://php.net/manual/en/language.oop5.php

それは長い間あなたを取らないだろう、とあなたは基本を理解するのに役立ちますし、 OOコードを使用し続ける問題を解決してください。