German Sql suche über Arry mit id´s

Wolli013

Well-Known Member
Licensed User
Longtime User
Hallo Leute, wie kann ich ein Array, gefüllt mit verschiedenen ID´s in meiner Auswahl einfügen?

Anbei mein Code wo es sonst klappt, nur fehlt noch die einbindung des Array
oder eine Stringvariable ca. so gefüllt StringID = "1,26,32,65,29,87,21"
Wer kann mir helfen.

B4X:
  Dim IDarry() As String  'Werden gefüllt mit verschiedenen IDs
Dim Cursor1 As Cursor      'Zeiger benennen
Cursor1 = SQL1.ExecQuery("Select * FROM Tabelle WHERE Kunde LIKE '%"&KundenSuchName&"%' AND Date BETWEEN'" & von & "' AND '" &  bis & "'" & " ORDER BY Date")
 
Last edited:

specci48

Well-Known Member
Licensed User
Longtime User
Kannst Du dein Problem nochmal näher erläutern?
Was sind das für ID's, was steht da drin? Und wo genau, in welcher "Auswahl" willst du sie einfügen?
Möchtest du die ID's aus dem Array in einem SQL-Satement verwenden?
 

Wolli013

Well-Known Member
Licensed User
Longtime User
Möchtest du die ID's aus dem Array in einem SQL-Satement verwenden?
Ja genau, ich habe einen string mit vielen IDs drinne durch komma getrennt, wo ich jetzt mit einbinden möchte das er nur die Ids in den string sucht und dann übergibt.

Habe das im netz gefunden
<?php
$array = array(1, 2, 3, 4, 5); // Dein Array von ints
$string = implode( ', ', $array); // Damit erzeugst du den String "1, 2, 3, 4, 5"

$query = "SELECT FROM table WHERE spalte IN ( ". $string ." ) ";
?>
 

mw71

Active Member
Licensed User
Longtime User
Moin,

da ich nicht so richtig Ahnung von dem ganzen habe (Arbeite mich auch erst ein), bitte die Antwort mit Vorsicht genießen ;)

Vorausgesetzt die SQL Anweisung die du gefunden hast funkt., sollte das so gehen

B4X:
Cursor1 = SQL1.ExecQuery("SELECT FROM table WHERE spalte IN ( " & StringID & " ) ")
dabei musst du noch 'table' durch den Tabellennamen ersetzen und 'spalte' durch den Bezeichner für deine Spalte mit den ID's

Ist aber nicht getestet!

Grüße
 

Wolli013

Well-Known Member
Licensed User
Longtime User
Bin schon ein Stück weiter fehlt nur noch das der Kunde mit abgefragt wird.
KundenSuchID enthält z.B 1,2,3,4,5,6,7,8
So geht es schon mal.

B4X:
Cursor1 = SQL1.ExecQuery("Select * FROM Tabelle WHERE ID IN ("& KundenSuchID &") And Date BETWEEN'" & txtvon & "' AND '" &  txtbis & "'" & " ORDER BY Date")

So leider nicht.

B4X:
Cursor1 = SQL1.ExecQuery("Select * FROM Tabelle WHERE Kunde LIKE '%"&KundenSuchName&"%' And WHERE ID IN ("& KundenSuchID &") AND Date BETWEEN'" & von & "' AND '" & bis & "'" & " ORDER BY Date")
 

Wolli013

Well-Known Member
Licensed User
Longtime User
So geht es ja jetzt.
Danke für Hinweise, das man den Kunden auch noch Identifiziern soll ist ja blödsinn wie mir auffiel, das mache ich ja durch die eindeutige ID

So geht es auf jeden Fall zu 100 %
B4X:
Cursor1 = SQL1.ExecQuery("Select * FROM Tabelle WHERE ID IN ("& KundenSuchID &") And Date BETWEEN'" & txtvon & "' AND '" &  txtbis & "'" & " ORDER BY Date")
 

DonManfred

Expert
Licensed User
Longtime User
So leider nicht
Kein Wunder
Select * FROM Tabelle WHERE Kunde LIKE '%"&KundenSuchName&"%' And WHERE ID IN
Zwei where in einer Abfrage funktionieren nicht.

Versuchs mal ungefähr so
B4X:
Select * FROM Tabelle WHERE Kunde LIKE '%"&KundenSuchName&"%' And ID IN  ("& KundenSuchID &") And Date BETWEEN'" & txtvon & "' AND '" & txtbis & "'" & " ORDER BY Date")
 
Top