Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi "Intelligente" Suche in Datenbank (https://www.delphipraxis.net/28313-intelligente-suche-datenbank.html)

Gambit 23. Aug 2004 12:42

Re: "Intelligente" Suche in Datenbank
 
Ich will sie aber nicht anzeigen sondern etwas damit tun.
Mit:
Delphi-Quellcode:
s:= Query.FieldByName('Titel').AsString;
bekomme ich nur den ersten Datensatz der gefundenen Datensätze. Wie bekomme ich bei 3 gefundenen Datensätzen den zweiten und dritten Datensatz zu fassen?

Einfacher kann ichs nicht erklären...

Gambit

Gambit 23. Aug 2004 12:50

Re: "Intelligente" Suche in Datenbank
 
Aha, query.next bezieht sich auch auf RecordSets, darüber hatte ich noch nicht nachgedacht...

Niels 23. Aug 2004 13:03

Re: "Intelligente" Suche in Datenbank
 
Hi,
wenn ich dich jetzt richtig vertehe ist die Lösung wahrscheinlich gar nicht so schwer.

SQL-Code:
$result = mysql_query("SELECT * FROM table2 WHHERE Titel LIKE 'Arielle%'");
while($data = mysql_fetch_array($result)) {
/* die schleife wird jetzt so oft durchlaufen bis kein ergebnis mehr gefunden wird */
/* du kannst also deine Überprüfungen mit $data[titel] durchführen und gleich bei einem Trefffer die restlichen Infos aus $data eintragen */
}
Hoffe das hilft dir weiter!


mfg Niels

Gambit 23. Aug 2004 13:34

Re: "Intelligente" Suche in Datenbank
 
Hmm, liest sich ja erstmal ganz gut...ich verstehe nur am Source nicht so ganz diese Dollarsymbole, sind das nicht Compilerdirektiven? So direkt übernehmen kann ich den Code doch wohl nicht, oder?

Gambit

franktron 23. Aug 2004 13:40

Re: "Intelligente" Suche in Datenbank
 
Zitat:

Zitat von Gambit
Hmm, liest sich ja erstmal ganz gut...ich verstehe nur am Source nicht so ganz diese Dollarsymbole, sind das nicht Compilerdirektiven? So direkt übernehmen kann ich den Code doch wohl nicht, oder?

Gambit

Das ist ein PHP Code

Gambit 23. Aug 2004 13:59

Re: "Intelligente" Suche in Datenbank
 
achso, die Delphi Variante sollte dann wohl etwas anders aussehen. Hatte mich schon arg gewundert...

Gambit

lume96 23. Aug 2004 14:10

Re: "Intelligente" Suche in Datenbank
 
Tschuldigung, da haben wir wohl aneinander vorbei geredet.

Ich hatte nicht kappiert, dass Dein Problem beim einlesen der verschiedenen Ergebnisse liegt.

Da solltest Du doch mit Query.Next; (wie Du selbst schon geschrieben hast) gut weiterkommen. In etwa so

Delphi-Quellcode:
Query.First; //erste Datensatz aus Query
recfound := false; //von Dir angelegter Boolean
repeat
 s:= Query.FieldByName('Titel').AsString;
 if TestObRichtigeString(s) then
  recfound := true
 else
  Query.Next;
until (Query.EOF) or Recfound;


Zitat:

Zitat von Gambit
Zitat:

Zitat von lume96
Auf den ersten Blick sieht das hier für mich nach einem "Master-Detail"-schema aus. Sollte das so sein, wäre es auf jeden Fall ratsam, die Relation zwischen Datenbank1 und Datenbank2 durch einen direkten Vergleich Datenbank1.PrimaryKey=Datenbank2.ForeignKey herzustellen.

Ich verstehe jetzt nicht so recht, was mir das bringen könnte.

In Deinem Fall gar nichts. Wollte halt nur darauf hingewiesen haben, dass es besser wäre die Sache über Primary und Foreign Key zu Lösen. Ist klar, dass das, wenn Du schon über 1000 Einträge hast, keine Lösung ist (aber ich wusste ja auch nicht, dass Deine Tabelle schon so viele Einträge hat).

MfG
Lutz

Gambit 23. Aug 2004 14:36

Re: "Intelligente" Suche in Datenbank
 
Naja, ich hatte mich auch nicht sehr glücklich ausgedrückt...deine Lösung würde wohl funzen.

Ich hatte jetzt folgende überlegt:

Delphi-Quellcode:
while not (Query1.EOF) or titlefound do
    begin
      ...
      zQuery1.Next;
    end;
was ja das Gleiche in Grün ist. Ich hatte die ganze Zeit einfach nicht bedacht, dass sich Query.EOF oder Query.Next natürlich auch auf RecordSets anwenden lassen und nicht nur auf Tabellen.

Jetzt weiß ich zumindest, wie ich vorgehen kann.

Ein weiteres wäre jetzt noch zu überlegen, den Suchstring in einzelne Wörter zu zerlegen und dann zu gucken, ob die Wörter in dem Titel von Tabelle 2 enthalten sind, egal in welcher Reihenfolge. Das könnte man vielleicht recursiv lösen?
Aber das ist wohl was für einen neuen Thread...

Besten Dank und Gruß

Gambit

Niels 23. Aug 2004 18:46

Re: "Intelligente" Suche in Datenbank
 
Zitat:

Zitat von franktron
Zitat:

Zitat von Gambit
Hmm, liest sich ja erstmal ganz gut...ich verstehe nur am Source nicht so ganz diese Dollarsymbole, sind das nicht Compilerdirektiven? So direkt übernehmen kann ich den Code doch wohl nicht, oder?

Gambit

Das ist ein PHP Code

Sorry :oops: :wall:
War wahrscheinlich noch etwas früh (war grad aufgestanden :mrgreen: ). Naja da hab ich irgendwie gar nicht an Delphi gedacht und das in php geschrieben. Aber jetzt ist dein Problem ja gelöst :wink:

mfg Niels


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:16 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz