Danke erstmal bis hierher. Habe jetzt genügend Hausaufgaben zum Ausprobieren...
Beiträge von STA
-
-
ZitatWHERE feld1=wert OR feld1=NULL
Bei Recherche-Inhalten in mehreren Felden dann
WHERE (feld1=wert OR feld1=NULL) AND (feld2=wert OR feld2=NULL)
Sind die runden Klammern nötig?
-
Zitat
schreibt man die Spaltennamen rein
Wenn am Ende ein Filterergebnis raus kommen soll, ist doch aber eine WHRERE-Klausel erforderlich? Da hinein gehören dann die angefragten Recherche-Werte. Das funzt doch aber nicht, wenn bestimmte Felder keinen Recherche-Wert haben. Oder doch?
-
Zitat
im Ergebnis gebraucht werden, explizit anzugeben (statt "select *") [angeben].
Hast Du dafür mal ein Beispiel?
-
Hallo Sempervivum,
danke für die Antwort. Es war mir schon klar, dass es mit derart globalen Fragen schwierig werden könnte.
ZitatNatürlich sind auch mehrere Parameter möglich aber dann wird es ein wenig komplizierter: Man muss dann entscheiden ob sie "und"- oder "oder"-verknüpft werden sollen und u. U. dem Benutzer dafür eine Auswahl anbieten.
Ich werde wohl nur die "und"-Variante zulassen. "Oder" macht bei dieser Recherchetechnik weniger Sinn.
ZitatDas lässt sich so pauschal kaum beantworten. Ist ein Parameter unverzichtbar, so sollte man gleich bei der Eingabe fordern, dass er angegeben wird.
Es geht hier nur um Recherchen, also nicht um irgendeine Datenmanipulationen. Die Formularvalidierung erfolgt bei Eingabe/Änderung der Daten sowieso. Meine Frage zielte darauf: Im Adressenformular gibt es c. 20 Felder (Firma, Abteilung, Name, Vorname, Straße, HausNr, PLZ, Ort, ...) Bei Recherchen werden aller Voraussicht nach aber nur einzelne dieser Felder (in UND-Verknüpfung) angefragt. Trunkierungen oder Platzhalter sind bei Recherchen mit einzugeben.
Was mache ichmit den dann leer bleibenden Feldern im SELECT-Aufruf? Ich weiß ja nie, welche Felder angefragt werden. Wenn ich alle Felder in den SELECT-Aufruf schreiben, muss in leer gebliebenen FormFeldern auch stets was stehen...
ZitatGesamtergebnis addieren oder subtrahieren
Ich sah sowas mal in einer anderen Datenbank. Recherche 1 lief durch. Bei einer gleich danach erfolgten Recherche 2 kam die Zwischenfrage mit den Optionen [A] "Wollen sie die Daten dem Rechereergebnis hinzufülen?", [B] "Wollen sie die Daten aus dem Rechereergebnis entfernen?". Solche schrittweise zusammengebauten Gesamtrecherchen ließen sich am Ende sogar abspeichern (die Rechere selbst, nicht das Rechercheergebnis) und stand fortan dem Nutzer dauerhaft zur Verfügung. Das warbei komplexen Recherchen sehr hilfreich.
-
Hallo zusammen,
ich bastle gerade an einem Adressbuch (php, mysql), habe nun aber einen 'Knoten im Hirn'.
Datenpflege (Eingabe, Bearbeiten, Löschen) funzt alles. Nun möchte ich durch Recherche-Routinen bestimmte Datensätze aus der Adressen-Tabelle auslesen können, um mit dem Recherche-Ergebnis weiterzuarbeiten (Serienbriefe, Serienmails etc.). Es sollen sich dabei ggf. mehrere Recherchen zum Gesamtergebnis addieren oder subtrahieren.
(1.) Wie gehe ich ein solches Problem grundsätzlich an? Mit extra (temporären) Tabellen (z.B. der recherchierten IDs aus der Adressentabelle)?
(2.) Wie kann ich für eine solche Recherche das Formular nutzen, mit dem ich sonst Datensätze der Adressen-Tabelle editiere (enthält ca. 20 Felder aus der Adressentabelle)? Läuft das auf eine riesige SELECT-Anfrage mit allen Feldern des Formulars hinaus? Und wie gehe ich mit Datenfeldern um, in die bei der Rechere nix eingetragen wurde? Muß ich jedes Feld zunächst auf Vorhandensein eines Eintrags prüfen?
Danke für jede Hilfe!