Problemchen mit Datenbnk#2

svennson

Erfahrenes Mitglied
Hi,
muss nochmal nerven.
Hab die Ausgabe vom GB fertig und wenn ich die einfach so aufrufe, dann klappt es auch.
Wenn ich die aber üer include() in auf meiner Seite aufrufen will, dann meckert der wieder,
dass mysql_fetch_object() ein ungültiges Argument liefert.
Das kann doch eigentlich nicht sein, wenn müsste das ja auch kommen wenn ich die Seite alle aufrufe.
Hier nochmal der Code...
PHP:
<?php
$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 = mysql_connect("localhost", "bla", "bla") or die("Es konnte keine Verbindung hergestellt werden");
mysql_select_db("homepage") or die("Die Datenbank konnte nicht angesprochen werden");

//Einträge pro Seite: Hier 15 pro Seite
$eintraege_pro_seite = 15; 
//Ausrechen welche Spalte man zuerst ausgeben muss:
$start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;

$abfrage = "SELECT name, page, text, datum, zeit 
FROM gb 
ORDER BY id DESC 
LIMIT $start, $eintraege_pro_seite ;";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
echo "<table align=center>
                       <tr><td>Vom:$row->datum, $row->zeit</td></tr>
                       <tr><td>Von:$row->name</td></tr>
					   <tr><td>HP:$row->page</td></tr>
					   <tr><td>Eintrag:</td></tr>
					   <tr><td>$row->text</td></tr>
					   <tr><td>--------------------------------------</td><br></tr>
					   </table>";
}


$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 align=\"center\">";
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=gb$b\">$b</a> ";
      }
echo "</div>";
}
mysql_close($verbindung);
?>
 
Dann mach das Script sauber und bau nach dem mysql_query folgendes ein

if( $ergebnis === FALSE )
echo mysql_error();


Mustt dir halt noch was überlegen, dass du das while nicht ausführst und eben einen Fehler ausgibst, statt der Daten.
 
Hier ist die Switch-Anweisung mit den Includes:
PHP:
php switch($seite){
case "start": include("start.txt"); break;
case "info": include("info.php"); break;
case "gb": include("gb.php"); break;}
 
@Jörg: Möglich, nur melden die fetch funktion idr. dann einen fehler, wenn der handle nicht gültig ist den sie haben und das könnte er damit überprüfen und zudem sein script sauberer machen...
 
Das gibt der als mysql_error aus:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-15, 15' at line 4

Aber keinen Plan was der will, da in line 4 nur ein Kommentar steht... :confused:

Und was verstehst du unter sauberer machen?
Musst dich deutlicher ausdrücken, ich mach sowas erst seit nen paar Tagen..
 
Dann lass dir die Query ausgeben die du schickst.
Das Problem ist vermutlich nach dem LIMIT.

Das irgendwelche variablen nicht richtig gesetzt oder nach dem include überschrieben werden o.ä.
 
Also das hier ist mal der ganze Quelltext von wo aus das Gb aufgerufen werden soll...
Evtl. ist da ja dann was so falsh, dass sich das Gb da nicht öffnen lässt.
PHP:
<html>
<head>
<title>Sven's hp-<?php echo $seite;?></title>
<head>
<body>

<table align ="left" bgcolor="black">
<tr><td><a href="sven.php?seite=start">start</a></td></tr>
<tr><td><a href="sven.php?seite=info">info</a></td></tr>
<tr><td><a href="sven.php?seite=gb">Gästebuch</a></td></tr>
</table>


<table align="center">
<tr><td><?php switch($seite){
case "start": include("start.txt"); break;
case "info": include("info.php"); break;
case "gb": include('gb.php'); break;}?>
</td></tr>
</table>												  
</body>
</html>
Hoffe ihr könnt damit was anfangen.
 
Zurück