AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Zum nächsten Datensatz springen
Thema durchsuchen
Ansicht
Themen-Optionen

Zum nächsten Datensatz springen

Ein Thema von Luckie · begonnen am 8. Jun 2010 · letzter Beitrag vom 9. Jun 2010
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 01:01
Datenbank: MySQL • Version: ? • Zugriff über: PHP
Ich versuche gerade mit einem SQL-Statement die ID des nächsten Datensatzes zu bekommen:
Code:
function getNextID($id) {
      $query = "SELECT * FROM adressen
               WHERE
                  (gesch_firma > ( SELECT gesch_firma FROM adressen WHERE id = $id ))
               OR
                  (name > ( SELECT name FROM adressen WHERE id = $id ))               
               OR
                  (vorname > ( SELECT vorname FROM adressen WHERE id = $id ))
               ORDER BY gesch_firma, name, vorname ASC limit 0,1";
      $resPrev = mysql_query ($query);
      $prevID = mysql_fetch_object($resPrev);      
      return $prevID->id;
   }
(OK, das drumherum ist PHP, aber das ist egal.)
Allerdings springt er mir so nur zwischen zwei Datensätzen hin und her. Zu beachten ist, dass nicht immer alle Felder (gesch_firma, name, vorname) einen Wert haben, also leer sein können. Dann sollen die Datensätze der Reihenfolge gesch_firma, name, vorname durchgeblättert werden, so wie sie auch sortiert sind.

Als Vorlage diente mir diese Seite: http://webdesign.tepelmann.com/index...Datensatz.html Aber wenn ich das nur auf das Feld namen beschränke, überspringt er Datensätze.
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 8. Jun 2010 um 01:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 04:01
Ich glaube der verrammelt da was mit der Oder-Verknuepfung.
Trenne das mal in 3 einzelne Abfragen auf und implementiere die Logik selbst
if ($idFirma != "") { $prevID = $idFirma } else { usw.
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 08:39
Ich denke, mit Aggregatfunktionen käme man weiter.
SQL-Code:
SELECT MIN(ID)
FROM Tabelle
WHERE ID > :aktuelle_ID
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von mkinzler ( 8. Jun 2010 um 08:48 Uhr) Grund: SQL Formatierung aktiviert
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 08:48
Oder mit Limitierung

SQL-Code:
SELECT
   TOP 1 ID
FROM
    Tabelle
WHERE
    ID > :aktuelle_ID;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.545 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 09:44
Aber dann müsstest Du zur Sicherheit noch nach ID sortieren, wenn ich gerade keinen Denkfehler mache.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Zum nächsten Datensatz springen

  Alt 8. Jun 2010, 09:53
Wer zur Sicherheit besser, obwohl es bei der Id auch so stimmen sollte
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz