Hilfe bei Query, welcher Operator?
Hallo,
ich hab ein Query für eine SQLite Datenbank mit mehreren WHERE Bedingungen. KA wie ich es erklären soll, deswegen hier ist es:
Wenn cb1.SelectedText jetzt zB 5 ist, soll es alle Datensätze, wo FK_1 "5" ist zurückgeben. Tut es aber nicht. Wenn ich es zwischen den Klauseln mit einem "OR" versuche, kommen auch andere Datensätze, weil *.SelectedText auch ein leerer string ("") sein kann. Welchen Verknüpfungsoperator (heißt das so?) brauche ich, damit es klappt? Mit "IS" hab ichs probiert, ging nicht.
dermainzer
ich hab ein Query für eine SQLite Datenbank mit mehreren WHERE Bedingungen. KA wie ich es erklären soll, deswegen hier ist es:
|
|
MySQL-Abfrage(n) |
1 |
"SELECT * FROM tabelle WHERE (EK < '" + txtPreisVon.Text + "' AND EK > '" + txtPreisBis.Text + "') AND FK_1= '" + cb1.SelectedText + "' AND FK_2= '" + cb2.SelectedText + "' AND FK_3 = '" + cb3.SelectedText + "' AND Jahrgang = '" + txtJahr.Text + "'" |
Wenn cb1.SelectedText jetzt zB 5 ist, soll es alle Datensätze, wo FK_1 "5" ist zurückgeben. Tut es aber nicht. Wenn ich es zwischen den Klauseln mit einem "OR" versuche, kommen auch andere Datensätze, weil *.SelectedText auch ein leerer string ("") sein kann. Welchen Verknüpfungsoperator (heißt das so?) brauche ich, damit es klappt? Mit "IS" hab ichs probiert, ging nicht.
dermainzer
erzähl doch mal welche tabellen du hast, welche spalten, wie sind die miteinander verknüpft, welche werte stehen drin und was du als ergebnis angezeigt haben willst. dann können wir dir weiterhelfen
MFG
MFG
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
ok, hier sind ein paar Bedingungen:
wenn FK_1 = ,5 zeige alle Datensätze mit FK_1 = 5
wenn FK_1 = 5 und FK_2 = 7, zeige alle Datensätze mit FK_1 = 5 und FK_2 = 7
wenn EK < 5 und EK > 10 und FK_4 = 30, zeige alle Datensätze wo EK < 5, EK > 10 und FK_4 = 30
Wenn ich bei diesem Query FK_1 = 10 habe, zeigt es nichts an, aber es sollte alle Datensätze zeigen, wo FK_1 = 10 ist. Ich hoffe, dass es jetzt etwas verständlicher ist.
dermainzer
wenn FK_1 = ,5 zeige alle Datensätze mit FK_1 = 5
wenn FK_1 = 5 und FK_2 = 7, zeige alle Datensätze mit FK_1 = 5 und FK_2 = 7
wenn EK < 5 und EK > 10 und FK_4 = 30, zeige alle Datensätze wo EK < 5, EK > 10 und FK_4 = 30
Wenn ich bei diesem Query FK_1 = 10 habe, zeigt es nichts an, aber es sollte alle Datensätze zeigen, wo FK_1 = 10 ist. Ich hoffe, dass es jetzt etwas verständlicher ist.
dermainzer
Es ist immer noch nicht verständlicher aber wenn es dir weiterhilft:
"SELECT * FROM somewhere WHERE FK_1 = 5"; //FK_1 MUSS eine Spaltenüberschrift sein
"SELECT * FROM somewhere WHERE FK_1 = 5 AND FK_2 = 7";
"SELECT * FROM somewhere WHERE (EK BETWEEN 5 AND 10) AND FK_4 = 30"
und alles zusammengefasst:
"SELECT * FROM somewhere WHERE (EK BETWEEEN 5 AND 10) AND FK_4=30 AND FK_1 = 5 AND FK_2 =7 ";
ist es das was du wolltest?
"SELECT * FROM somewhere WHERE FK_1 = 5"; //FK_1 MUSS eine Spaltenüberschrift sein
"SELECT * FROM somewhere WHERE FK_1 = 5 AND FK_2 = 7";
"SELECT * FROM somewhere WHERE (EK BETWEEN 5 AND 10) AND FK_4 = 30"
und alles zusammengefasst:
"SELECT * FROM somewhere WHERE (EK BETWEEEN 5 AND 10) AND FK_4=30 AND FK_1 = 5 AND FK_2 =7 ";
ist es das was du wolltest?
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »cccpmik« (16. November 2009, 14:49)
Hi cccpmik,
hilft mir nicht ganz weiter, ich mach es mal an einem Beispiel fest.
Ich hab eine Tabelle mit ca. 2500 Datensätzen. Diese Tabelle will ich durchsuchen.
In einem Formular sind Combo- und Textboxen für die Kriterien. Wenn ich in ComboBox1 5 eingebe/auswähle, sollen alle Datensätze, bei denen
FK_1 = 5 ist, ausgegeben werden. Wenn ich aber in ein zweites Feld 8 eingebe, sollen alle Datensätze mit FK_1 = 5 und FK_2 = 8 gefunden werden.
dermainzer
hilft mir nicht ganz weiter, ich mach es mal an einem Beispiel fest.
Ich hab eine Tabelle mit ca. 2500 Datensätzen. Diese Tabelle will ich durchsuchen.
In einem Formular sind Combo- und Textboxen für die Kriterien. Wenn ich in ComboBox1 5 eingebe/auswähle, sollen alle Datensätze, bei denen
FK_1 = 5 ist, ausgegeben werden. Wenn ich aber in ein zweites Feld 8 eingebe, sollen alle Datensätze mit FK_1 = 5 und FK_2 = 8 gefunden werden.
dermainzer
Dann mach folgendes:
$query = "SELECT * FROM somewhere ";
if(isset($_POST)){
$query .= "WHERE ";
}
if(!empty($_POST['feldxy'])){
$query .= "irgendwas = ".$_POST['fieldxy'];
}
und das die ganze zeit. so dass du am ende eine query zusammensetzt, je nach dem ob und was eingegeben wurde
$query = "SELECT * FROM somewhere ";
if(isset($_POST)){
$query .= "WHERE ";
}
if(!empty($_POST['feldxy'])){
$query .= "irgendwas = ".$_POST['fieldxy'];
}
und das die ganze zeit. so dass du am ende eine query zusammensetzt, je nach dem ob und was eingegeben wurde
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Na das ist doch nice, da haben echt die Lehrstunden von ospx ,heiner,jperl mir doch weitergeholfen, und ich kann nun auch anderen helfen
Mein kleines Projekt
-Cruel Online-
-Cruel Online-
Ähnliche Themen
-
PHP »-
Prüfen ob Ergebniss eine Kommazahl ergiebt?
(12. März 2006, 19:37)
-
PHP »-
Schaut euch bitte den CODE an.
(6. Oktober 2003, 09:39)



