2012-04-10 12 views
-2

Da ich aber in PHP nicht mit oop vertraut bin. Ich bin nicht sicher, was ich die $ db-Variable als definieren muss, um meine Datenbank richtig abzufragen. Ist ihr ein Weg, ich kann diesen Code bearbeiten, so dass es die $ db umgeht und einen anderen Ansatz verwendet, verwendet der Code Ajax, um mehr Beiträge zu laden. Der Fehler ist auf der Leitung 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> 

laden mehr

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

Haben Sie versucht zu suchen, wo Sie es * von * kopiert haben? –

+2

Ich würde vorschlagen, nicht blind Copy-Paste-Code, der Datenbank-Interaktion macht. Es ist (a) unwahrscheinlich, für Ihre Bedürfnisse zu arbeiten und (b) das grundlegende Verständnis überspringend, müssen Sie tatsächlich eine datenbankgesteuerte Anwendung erstellen. – Amber

+0

"Wie definiere ich die $ db? Hinweis: Undefinierte Variable: db" @ Ich weiß es nicht. Wir können nicht einfach raten, was dein Code ist. Wenn Sie Code kopieren und einfügen möchten, sollten Sie zunächst wissen, was er tut. Ich würde vorschlagen, auf OOP PHP zu lesen. Viel Glück. Relativer Benutzername btw "come2gether". Tatsächlich. – Flukey

Antwort

1

Das wird kompliziert erweisen, wenn Sie nicht verwendet werden Oriented PHP Objekt, aber Sie müssen Ihre Objekte konstruieren. Die MySQLi-Klasse constructor beispielsweise nimmt Benutzer, Passwort, Datenbank usw. und weiß dann, wo sie sich verbinden soll.

Bevor Sie Dinge wie $ db-> get_results verwenden können, müssen Sie Ihr DB-Objekt konstruieren. Jetzt erkenne ich die Funktion get_results nicht mehr, daher nehme ich an, dass es sich um eine benutzerdefinierte DB-Klasse handelt. Sie sollten die Dokumentation für diese bestimmte Klasse sehen, wenn Sie wissen wollen, was zu tun ist.

+0

ok, ich bin vielleicht in der Lage, den Code mit dem zu ändern, was ich bereits habe. – arboles

0

Code scheint kompliziert, aber wenn Sie so schreiben möchten $db->get_results. Sie müssen eine Datenbankklasse im Konstruktor der Datenbankverbindung mit Hostname, Benutzer, Datenbank und Kennwort einrichten.

Danach definieren Sie eine Methode get_result in dieser Klasse, und Sie dann Objekt dieser Klasse wie $dg=new Database(); erstellen und dann können Sie $db->get_result verwenden.

0

Anstatt Sie zu lehren - es hier eine Antwort zu lange dauern würde, eine Lese über die PHP OO Seiten: http://php.net/manual/en/language.oop5.php

Es wird nicht lange dauern, und wird Ihnen helfen, die Grundlagen zu verstehen und Hilfe bei der Behebung von Problemen, die mit OO-Code auftreten.