Christian Naggert: Nächsten Datensatz auf Inhalt eines Feldes überprüfen

Beitrag lesen

Hallo Michael,

Aus Deiner obigen Beschreibung schließe ich, daß Du via HTTP im Wesentlichen zwischen den verschiedenen Treffern einer Abfrage blättern willst - richtig?

Genau das habe ich vor.

Du gehst dabei implizit davon aus, daß irgendwer sich nach dem Klicken auf besagten Link noch an das Ergebnis einer vorherigen Datenbankabfrage erinnern würde.

Sehe ich ein, war wohl nix :-(

Alles, was der nächste Datenbankzugriff tun kann, ist, wieder eine neue Anforderung (im Wesentlichen dieselbe wie zuvor) zu stellen - wobei er (mit Hilfe des Query-Strings des URLs in dem von Dir erwähnten Link) immerhin die Chance hat, eine gegenüber der vorherigen Anforderung _abweichende_ Anfrage zu verursachen.

Habe ich versucht! Ich möchte ja den nächsten Datensatz haben, der eine höhere ID hat und im Feld 'anzeigen' eine 1 stehen hat. Ich hatte in einem anderen Forum etwas von '$currentid' gelesen. Ich gedacht, dass könnte ich benutzen, um eine Abfrage zu erstellen, die mir alle Datensätze auswirft, die eine höre ID haben als meine aktuelle:

$new="SELECT * FROM angebote WHERE id > '$currentid' AND anzeigen = 1 ORDER BY id LIMIT 1";

Klappt aber nicht, dann habe ich:

$new="SELECT * FROM angebote WHERE id > '$id' AND anzeigen = 1 ORDER BY id LIMIT 1";

ausprobiert geht aber auch nicht :-( Er landet immer beim ersten Datensatz in der Tabelle).

Selbst wenn das klappen würde, klappt das mit der id auch irgendwie nicht. Ich habe dann eben mit dem ersten Datensatz der Tabelle herumexperimentiert. Ich konnte mir die Daten der ersten Abfrage und auch alle Felder der zweiten Abfrage anzeigen lassen, aber nicht die id (eingelesen in $id_new):

$new="SELECT * FROM angebote WHERE id > '$id' AND anzeigen = 1 ORDER BY id LIMIT 1";
 $connect->do_query($new);
 $connect->getrow();

$objektnr=$connect->field("objektnr");
 $id_new=$connect->field("id");
 $zeile_new=$connect->field("zeile_eins");

Mit dem Befehl <? echo $id_new ?> erhielt ich keine Anzeige?!?

Du kannst also dadurch blättern, daß Du jedesmal _alle_ in Frage kommenden Datensätze aus der Datenbank abfragst, von diesen aber nur den <n>-ten Datensatz wirklich abgreifst (LIMIT-Klausel).

Blättern über die ID geht deshalb nicht so einfach, weil Du sämtliche (!) Seiten ja so generieren müßtest, daß jeweils die ID der nachfolgenden Seite in dem Link eingetragen ist - und wer soll sich diese IDs in der Zwischenzeit wo merken?

Gut, wenn ich weiss, wie man den nächsten abfragt (mit $currentid oder wie auch immer), muss es doch möglich sein, diese ID auszulesen und in einen Link zu packen! Ich verstehe das nicht, das muss doch irgendwie machbar sein. Warum kann man nicht einfach eine Liste der nachfolgenden Datensätze (geordnet nach id) ausgeben und sagen 'nextrow' oder einfach vom ersten Dastensatz die ID auslesen und in den Link packen?

Ich glaube, dass ist alles eine Nummer zu hoch für mich, dummerweise muss ich es irgendwie fertig bekommen, sonst bekomme ich ne Menge Stress.

Tut mir leid, dass ich deine Zeit so lange beanspruche, aber vielleicht kannst du mir nochmal helfen ???

Viele Grüße,
Christian