• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Vor und Zurück in Serie

Guten Abend,

ich habe auf meiner Seite Geschichten die zum Teil einer Serie angehören.
Ich möchte nun das man zwischen den Geschichten vor und zurück klicken kann.
Hier für habe ich in der SQL-Tabelle dazu bereits folgende Felder erstellt.

StoryNr - Int (Die erste beginnt mit 1 und so weiter)
Serie - varchar (alle Geschichten die der Serie angehören haben den gleichen Eintrag)
SerieEnde - tinyint Null erlaubt (NULL = aktuell letzter Teil)

Ich stelle mir das vor wie auch hier im Forum bei einem Thema
Anfang <- (Zurück) Aktuelle Geschichte -> (Vor) Ende

Frage:
Wie mache ich das mit den Links für den Sprung zum Anfang, Vor, Zurück und Ende am besten?
Mir fehlt im Moment ein Ansatz.
 
Werbung:
Du liest die Liste der Stories der aktuellen Seite aus:
PHP:
$sql = "SELECT * FROM tabelle LIMIT ".$from.",".$limit;

$from entspricht der dem nummerierten Ergebnis an der Position in der Ergebnismenge des SQL-Statements.
$limit entspricht der Anzahl der ausgehend von $from anzuzeigenden Ergebnisse.

Wenn Du
Code:
SELECT * FROM tabelle LIMIT 0,1
ausführst, erhälst Du das 1. Ergebnis.

Wenn Du
Code:
SELECT * FROM tabelle LIMIT 2,1
ausführst, erhälst Du das 3. Ergebnis.

Wenn Du
Code:
SELECT * FROM tabelle LIMIT 10,20
ausführst, erhälst Du das die Ergebnisse 11 bis 31 angezeigt.

$limit wird in deinem Fall vermutlich immer identisch sein, vermutlich 1 wenn Du 1 Story pro Seite anzeigen willst.

$from musst Du über die Links setzen. Also:
PHP:
<?php
 $from = (int)$_REQUEST["from"];
 $from_next = $from + $limit;
?>
<a href="story.php?from=<?php echo $from_next; ?>">weiter</a>

Weitere Details findest Du unter dem Stichwort seitenweise Anzeige.

Btw. würde ich das Datenbankmodell weiter normalisieren. Die Spalte "Serie" solltest Du als Integer definieren und in einer zweiten Tabelle "Serien" bestehend aus "Serie" (Int, PK) und "Serientitel" (varchar) die einzelnen Serien definieren. Dadurch hast Du später auch mehr Möglichkeiten und kannst die Daten auch performanter auslesen.
 
Threadi hat eigentlich alles grundlegende erklärt, musst nur noch ein wenig aufpassen, dass du kein <<Zurück auf der ersten und kein Weiter>> auf der letzten Seite anzeigst.
 
Werbung:
$limit wird in deinem Fall vermutlich immer identisch sein, vermutlich 1 wenn Du 1 Story pro Seite anzeigen willst.

Richtig immer nur eine Story pro Seite.
Und jede Story hat einen eigenen Datensatz in der Tabelle Story.

Und über diesen Weg funktioniert dann sicher auch Anfang (also erste Story) und Ende (also letzte Story)
Die Serien sind in der Tabelle der Stroys eingetragen. Das müsste doch schon reichen oder nicht?

Was bedeutet "performanter"
 
Hi,

ich habe das ganze nun etwas angepasst.

Code:
<?php
$tour = "SELECT * FROM Story LIMIT ".$from.",".$limit;

 $from = (int)$_REQUEST["from"];
 $from_befor = $from - $limit;
 $from_next = $from + $limit;

 echo

 '$form =' ,$form, ' / $limit=' ,$limit,
         '<br /><a href="fantasie.php?from=<?php echo $from_befor; ?>">zurück</a><strong>'
          ,$row->SerieNr,
         '</strong><a href="fantasie.php?from=<?php echo $from_next; ?>">weiter</a> /
         <a href="index.php?Bereich=fantasien&Inhalt=Fantasie&SQL<?php echo $from_next; ?>">weiter</a>'
?>

Der Link zur nächsten Story muss allerdings index.php aufrufen. Und benötigt auch den Bereich. (siehe letzte Zeile) Dann wird die Seite aufgerufen.
Wenn ich jedoch die Sache mit dem vor und zurück richtig verstehe. Dann würde eine Zahl heraus kommen.
ich habe mit echo mal die Werte geprüft und festgestellt. Bei mir jedoch kommt keine Angabe heraus.

Des weiteren für den Aufruf der Story in index.php benötige ich für den Wert SQL jedoch die url ohne endung.
Ich müsste also für die Links die url den Vor und Zurück zu ordnen.

Im Anhang mal ein Screeshot von der Datenbank "Story" in der die Felder die verwendet werden.
 

Anhänge

  • Tabellenstruktur - Story.jpg
    Tabellenstruktur - Story.jpg
    81,8 KB · Aufrufe: 7
Werbung:
Ich kenne die Aufgabenstellung ja nicht genau, aber Deine Tabelle scheint mir der Überarbeitung bedürftig.
Ein paar Fragen:
Jede Story gehört immer genau zu 1 Serie?
Werden die Autoren erfasst?
Wenn ja: gibt es pro Serie immer genau 1 Autor oder gibt es Autorenkollektive?
Können Stories innerhalb einer Serie von verschiedenen Autoren stammen?
Warum wird in "erstellt" und "überarbeitet" nur das Jahr und kein Zeitstempel gespeichert?
Gibt es ein definiertes Ende für eine Serie?
Sollte "veroeffentlicht" nicht besser mit einen Zeitstempel markiert sein?
Was bedeutet "neu"?

Das sind nur ein paar spontane Fragen, bestimmt nicht alle, die zur Datenstruktur gestellt werden müssen.
 
Ich kenne die Aufgabenstellung ja nicht genau, aber Deine Tabelle scheint mir der Überarbeitung bedürftig.
Ein paar Fragen:
Jede Story gehört immer genau zu 1 Serie?
Werden die Autoren erfasst?
Wenn ja: gibt es pro Serie immer genau 1 Autor oder gibt es Autorenkollektive?
Können Stories innerhalb einer Serie von verschiedenen Autoren stammen?
Warum wird in "erstellt" und "überarbeitet" nur das Jahr und kein Zeitstempel gespeichert?
Gibt es ein definiertes Ende für eine Serie?
Sollte "veroeffentlicht" nicht besser mit einen Zeitstempel markiert sein?
Was bedeutet "neu"?

Das sind nur ein paar spontane Fragen, bestimmt nicht alle, die zur Datenstruktur gestellt werden müssen.

Nein, es gibt Einzelstorys und es gibt Storys die einer Serie angehören.
Der Autor der Serie ist immer der selbe. Bei 90% aller Storys bin ich das selber.
Da ich nicht mehr genau weis wann die Story entstanden ist gibt es keinen Zeitstempel. Die Storys werden auch nicht über ein Formularfeld oder ähnliches eingegeben. es handelt sich nicht um ein Forum wie dies.
Die jeweils letzte Storie ist das aktuelle Ende.
Veröffentlicht gibt es weil es auch unveröffentlichte Storys gibt die erst später freigeschaltet werden.
Neu dient für die News. Und Markierungen auf Übersichtseiten.

Die Storys können direkt über die Navigation angesprungen werden.
Ein beispiel in der Anlage. Story von mir 2 von 5 veröffentlicht /eine der 2 gerade Neu.

Bsp:
Ich bin in der 3 Story von 5.
Ich möchte an Nummer 1 springen können (Anfang)
eine zurück also 2 (zurück)
eine vor also 4 (vor)
und ans ende (Ende)

Ich müsste in diesem Fall also auslesen welche Url die 1,2,4,5 hat.
Es gibt Serien mit mehr und weniger Teilen.
Und es gibt einige Einzelstorys die keine Serie sind.
 

Anhänge

  • tabellen beispielinlalt.jpg
    tabellen beispielinlalt.jpg
    85,8 KB · Aufrufe: 1
Zuletzt bearbeitet:
Zurück
Oben