Sorry - schon wieder die Blätterfunktion

neigruschka

Grünschnabel
Hallo,
ich habe schon den ganzen Forum durchgesucht und auch díe Tutorials durchgemacht, aber irgendwie funktioniert meine Blätterfunktion in meiner Gästebuch trotzdem nicht. Seit Tagen versuche ich mich daran und komme nicht weiter. Vielleicht kann mir hier jemand helfen.
Ich bin soweit gekommen, dass das Gästebuch richtig angezeigt.Das Problem liegt darin, dass ich nicht blättern kann - die Seiten gehen einfach nicht weiter bzw. es wird immer nur der erste Beitrag in der Datenbank-Tabelle geladen.
Mein Code:
verlinkt wird das Gästebuch mit einem Link zu einer neuen Seite. Man kommt dann auf eine neue Seite, wo man wiederum mit einem Link die Einträge ansehen kann:
PHP:
<a href="ausgabe.php" target="buch">Einträge lesen</a><br>

In der Tabelle sind im Moment drei Datensätze, aber wie schon gesagt, kann ich die nicht ansehen, weil es irgendwie nicht funktioniert und ich auch kein Fehler in meinem Code finden kann.

PHP:
<?php
if(!isset($aktion))
{
    $aktion="show";
}
if (empty($_GET['page']))
{
    $_GET['page'] = 1;
}


if($aktion == "show")
{
  echo "<body text=\"#6f6bdf\" bgcolor=\"#03036e\" link=\"#6f6bdf\" alink=\"#FF0000\" vlink=\"#6f6bdf\">";

  //Verbindung aufbauen
  $mysql = mysql_connect('localhost', ' ', ' ) or die(mysql_error());
  mysql_select_db('gbuch', $mysql) or die(mysql_error());

  //Variablen
  $beitraege=1;
  $anfang=($_GET['page']-1)*$beitraege;
  $ende=$anfang+$beitraege;

  //Auswahl der Beitraege aus der Tabelle
  $query="SELECT * FROM gaestebuch";
  $result=mysql_query($query,$mysql);
  $gesamt=mysql_num_rows($result);

  //Tabelle für Hintergrund - Anfang
  echo"
  <table background=\"grafiken-gaestebuch/aufgeschlagen.gif\" align=\"center\" width=\"472\" height=\"352\">
    <tr>
      <td>";

  //wenn keine Beiträge vorhanden sind
  if($gesamt==0)
  {
    echo"
    <table align=\"center\" width=\"90%\">
      <tr>
        <td valign=\"top\" height=\"200\" width=\"200\" align=\"center\">
            <center><font face=\"Book Antiqua\" size=\"+1\"><b><i>
            Bis jetzt hat noch<br> keiner hier eine <br>Nachricht<br> hinterlassen.
            </i></b></font></center></td>
        <td valign=\"top\" height=\"200\" width=\"200\" align=\"center\"> </td>
      </tr>
    </table>";
  }

  //Zaehler
  $counter=1;

  if($ende>$gesamt)
  {
    $ende=$gesamt;
  }

  //Ausgabe Datensaetze
  echo" <table align=\"center\" border=\"1\" width=\"90%\">";
  while ($zeileholen = mysql_fetch_array($result))
  {
    if(($counter>=$anfang) AND ($counter<=$ende))
    {
      //Ausgabe
      echo "<tr>";
        echo "<td valign=\"top\" height=\"200\" width=\"200\" align=\"center\">";
          echo $zeileholen["name"];
          echo "<br> schrieb am <br>";
          echo $zeileholen["datum"];
          echo " um ";
          echo $zeileholen["zeit"];
          echo "<br>------------<br>";
          echo "eMail: <a href=\"mailto:";
          echo $zeileholen["mail"];
          echo "\">";
          echo $zeileholen["mail"];
          echo "</a> <br>";
          echo "Homepage: ";
          if(trim($zeileholen["url"]) != " ")
          {
            if(strtolower(substr($zeileholen["url"], 0, 7)) == "http://")
            {
              echo"<a href=\"";
              echo $zeileholen["url"];
              echo "\">";
              echo $zeileholen["url"];
              echo "</a>";
            }
            else
            {
              echo"<a href=\"http://";
              echo $zeileholen["url"];
              echo "\">";
              echo $zeileholen["url"];
              echo "</a>";
            }
          }
        echo "</td>";
        echo "<td valign=\"top\" height=\"200\" width=\"200\" align=\"center\">";
          echo $zeileholen["nachricht"];
        echo "</td>";
      echo "</tr>";
    }
    $counter++;
  }
  echo "</table>";

  //Tabelle für Navigation
  echo "<table align=\"center\" border=\"1\" width=\"90%\">";
    echo "<tr>";
      echo "<td  width=\"200\" height=\"40\" align=\"left\">";
        if($_GET['page'] == 1)		/*man ist am Anfang der Tabelle*/
        {
          echo "&nbsp;";
        }
        else			/*man ist in der Mitte oder am Ende der Tabelle*/
        {
          $zurueck=$_GET['page']-1;
          echo "<a target=\"buch\" href=\"ausgabe.php?aktion=show&seite=";
          echo $zurueck;
          echo "\">zurück</a>";
        }
      echo "</td>";
      echo "<td height=\"40\" align=\"right\">";
        if($ende >=$gesamt)	/*man ist am Ende der Tabelle*/
        {
          echo "&nbsp;";
        }
        else			/*man ist am Anfang oder am Ende der Tabelle*/
        {
          $weiter=$_GET['page']+1;
          echo "<a target=\"buch\" href=\"ausgabe.php?aktion=show&seite=";
          echo $weiter;
          echo "\">weiter</a>";
        }
      echo "</td>";
    echo "</tr>";
  echo "</table>";

  //Tabelle für Hintergrund - Ende
  echo"
      </td>
    </tr>
  </table>";

  echo "</body>";

  //Datenbank schliessen
  mysql_close($mysql);

}

?>

Ich bitte um Hilfe, denn ich selbst bin schon am verzweifeln.
Ich danke schon mal im Voraus.
 
Du hast da glaube ich sehr viele Fehler drin echo"" kann doch nicht gehen oder? Muss dein ein blank zwinken echo und den " haben?!

In der SQL-Abfrage, mach das mal so -->
Code:
SELECT * FROM gaestebuch LIMIT $start, $beitraege;

Wenn du nun + klickst

PHP:
$start += $beitraege;

bei minus das gleiche minus, dann ist das gar nicht so ein Problem ;) Überdenk das nochmal...
 
PHP:
$mysql = mysql_connect('localhost', ' ', ' ) or die(mysql_error());
Dank der wunderbaren Syntax-Highlighting-Funktion des Forusm merkt man schnell, dass hier der Fehler (oder zumindest einer von vielen) begraben ist. Mach da noch ein zusätzliches ' rein und probier’s dann nochmal.
 
Ich denke das kommt davon dass er User und PW da rausgenommen hat und somit ein ' zu wenig hatte...Ich denke jedoch nicht das dies der Fehler ist, sonst würde es ja den entsprechenden Fehler geben. Aber er sagt dass das Paging nicht funktioniert...
 
Hallo,
danke für schnelle Antworten.
Leider hat es mir nicht weiter geholfen

@aquasonic:
die Leerzeichen zwischen echo und "" ändern nichts.
das Ändern von SELECT-Abfrage und das mit Plus und Minus hat das Ergebniss nur verschlechtert :-( Es wurde nur der erste Datensatz angezeigt und überhaupt keine Links zur nächsten Seite (was ich vorhin hatte, nur leider funktionierte das Verlinken irgendwie nicht - die Seite bzw. der Datensatz wurde nicht aktualisiert.)

@SilentWarrior
Dieser Fehler, welchen Du ansprichst, war nur hier im Forum - ich hatte da anstatt Leerzeichen den Datenbankbenutzer und Password - wollte das hier nicht schreiben. Auf jeden Fall ist das kein Fehler.

Ich hoffe, mir kann noch jemand helfen - ich weiss nicht mehr, was ich noch tun soll, damit das funktioniert - ich finde im Code keine Fehler und wenn ich den Code logisch durchdenke, ist auch alles in Ordnung (soweit meine Kenntnisse in PHP und MySQL sind).
 
Hier ist das Paging meines GB's, vielleicht hilft dir das weiter...

PHP:
function gb_paging($start, $count, $nav_id) {
	$paging = "";
	$startnew = $start-10;
	$startnew2 = $start+10;
	if ($count > 10) {
		if ($start != 0) $paging .= '<a class="paging" href="'.$config['root_url'].'?id='.$nav_id.'&action=show&start='.$startnew.'">&laquo;</a>';
		for ($i=0;$i<=$count/10;$i++) {
			$paging .= '&nbsp;';
			$zaehler = $i+1;
			$startpage = $zaehler*10-10;
			if (($start+10)/10 == $zaehler) $paging .= $zaehler;
			else $paging .= '<a class="paging" href="'.$config['root_url'].'?id='.$nav_id.'&action=show&start='.$startpage.'">['.$zaehler.']</a>';
		}
		if ($start < $count-10) $paging .= '&nbsp;<a class="paging" href="'.$config['root_url'].'?id='.$nav_id.'&action=show&start='.$startnew2.'">&raquo;</a>';
	}
	return $paging;
}

und der aufruf:

PHP:
if (empty($_GET['start'])) $start = 0;
else $start = $_GET['start'];
$count = mysql_num_rows(mysql_query("SELECT id FROM guestbook"));

echo gb_paging($start, $count, $nav_id);

$nav_id kannst du vergessen, ist nur für das Include zuständig...
 
Ich hab deinen Fehler! :)

Du liest folgendes ein:
PHP:
$_GET['page']

Hast aber im Link zur nächsten Seite '&seite=' stehen, also mache aus
PHP:
href=\"ausgabe.php?aktion=show&seite=
einfach mal
PHP:
href=\"ausgabe.php?aktion=show&page=
 
Zurück