M
mustermen
Gast
Ich habe Probleme mit PHP und zwar werden die Daten von der MySQL Datenbank nicht angezeigt, wegen eines Fehlers in Zeile 49:
"Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\gb.php on line 49"
Zeile 49 wurde hervorgehoben durch ein Kommentar!
Dabei will ich nur alle Gästebuch Einträge auf mehrere Seiten verteilen, anstatt alle auf einer.
"Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdocs\gb.php on line 49"
Zeile 49 wurde hervorgehoben durch ein Kommentar!
Dabei will ich nur alle Gästebuch Einträge auf mehrere Seiten verteilen, anstatt alle auf einer.
PHP:
<?php
// Neues Datenbank-Objekt erzeugen
$db = @new mysqli( 'localhost', 'root', '', 'gb' );
// Pruefen ob die Datenbankverbindung hergestellt werden konnte
if (mysqli_connect_errno() == 0)
{
$sql = 'SELECT `id`, `name1`, `url2`, `datum`, `text1` FROM `gb` ORDER BY `id` DESC LIMIT `$start`, `$eintraege_pro_seite`'; // Hier wurde LIMIT `$start`, `$eintraege_pro_seite`' neu hinzugefügt
// Statement vorbereiten
$ergebnis = $db->prepare( $sql );
// an die DB schicken
$ergebnis->execute(); //>>>>>>>>HIER IST ZEILE 49!!!!!!!!!!!!!!!!!!!!!!!!!!
// Ergebnis an Variablen binden
$ergebnis->bind_result( $id, $name1, $url2, $datum, $text1 );
// Ergebnisse ausgeben
while ($ergebnis->fetch())
{
echo "<div>";
echo "<p>";
if ($url2 != ""){
echo "<a href=\"";
echo $url2;
echo "\" target=\"_blank\">";
echo $name1;
echo "</a>";
} else {
echo $name1;
}
echo "</p>";
echo "<p>";
echo $datum;
echo "</p>";
echo "<p>";
echo nl2br($text1);
echo "</p>";
echo "</div>";
}
}
else
{
// Es konnte keine Datenbankverbindung aufgebaut werden. Folgender Fehler trat auf: <span class="hinweis">' .mysqli_connect_errno(). ' : ' .mysqli_connect_error(). '</span>
echo 'Die Datenbank konnte nicht erreicht werden.';
}
//Bis hier lief alles immer Problemlos! Jetzt kommt der neue hinzugefügte Code
$seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist
//Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
if(!isset($seite))
{
$seite = 1;
}
//Verbindung zu Datenbank aufbauen
$link = mysql_connect('localhost', 'root', '') or die ("Keine Verbindung moeglich");
mysql_select_db('gb') or die ("Die Datenbank existiert nicht");
//Einträge pro Seite: Hier 5 pro Seite
$eintraege_pro_seite = 5;
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;
//Jetzt kommt das "Inhaltsverzeichnis",
//sprich dort steht jetzt: Seite: 1 2 3 4 5
//Wieviele Einträge gibt es überhaupt
//Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
//also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt
//Sonst funktioniert die Blätterfunktion nicht richtig,
//und hier kann nur 1 Feld abgefragt werden, also id
$result = mysql_query('SELECT `id` FROM `gb`');
$menge = mysql_num_rows($result);
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $eintraege_pro_seite;
//Ausgabe der Seitenlinks:
echo "<div >";
echo "<b>Seite:</b> ";
//Ausgabe der Links zu den Seiten
for($a=0; $a < $wieviel_seiten; $a++)
{
$b = $a + 1;
//Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben
if($seite == $b)
{
echo " <b>$b</b> ";
}
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
else
{
echo " <a href=\"?seite=$b\">$b</a> ";
}
}
echo "</div>";
// Datenbankverbindung schliessen
$db->close();
?>