mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Mi 24.04.2024 04:31 Benutzername: Passwort: Auto-Login

Thema: Zuordnungsproblem vom 31.05.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Zuordnungsproblem
Seite: 1, 2  Weiter
Autor Nachricht
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.05.2007 09:34
Titel

Zuordnungsproblem

Antworten mit Zitat Zum Seitenanfang

Hallo Forengemeinde,

ich habe ein Problem welches mich nun schon seid 2 Tagen quält.
Es geht um folgendes, ich habe 3 Tabellen in einer DB.
Erste Tabelle enthält Produkte mit eindeutiger ID, Zweite Tabelle enthält Produkteigenschaften mit eindeiútiger ID und die 3 Tabelle ist eine Zuordnungstabelle von Produkte und Produkteigenschaften. Der Aufbau der Zuordnungstabelle sieht wie folgt aus:

IDPr | IDEig
1 | 1
1 | 4
1 | 8
1 | 11
1 | 16
1 | 17
1 | 22
1 | 26
2 | 4
2 | 16
2 | 17
2 | 22

auf der website gibt es Kontrollkästchen, über die man eine Auswahl von Produkteigenschaften treffen kann. Nach abschicken des Formulares soll über eine Programmierung das Produkt (oder die Produkte) gewählt werden auf das die Produkteigenschaften zutreffen.

Nun dachte ich das über die eindeutige Zuordnung in der Zuordnungstabelle das ergebniss über eine Abfrage ausgegen werden kann.

Folgendes habe ich:

Code:

...
dim erg
SQL = " SELECT DISTINCT [finder-zuordnung].IDPr, [finder-produkte].* FROM [finder-zuordnung] INNER JOIN [finder-produkte] ON [finder-zuordnung].IDPr = [finder-produkte].IDPr WHERE [finder-zuordnung].IDPr = [finder-produkte].IDPr AND ("

dim blnSetOR
blnSetOR = false
For Each erg In request.form
  If erg <> "senden" then
    if blnSetOR = true then
      SQL = SQL & " OR"
    end if
    blnSetOR = true
    SQL = SQL & " [finder-zuordnung].IDEig = " & erg
  End If
next
SQL = SQL & ")"
...      


...
nur funuktioniert die Abfrage mit "OR" nicht richtig, da er mir auch Produkte anzeigt auf die bei 2 gewählten Produkteigenschaften auch die anzeigt bei den nur eine Eigenschaft zugeordnet ist.

Wenn ich die Abfrage mit "AND" abändere bekomme ich keine ausgabe mehr,
da in einer Zeile ja immer nur eine Produkteigenschaft eingetragen ist. [siehe oben]

Kann mir jemand einen Tipp geben wie ich nur die Produkte angezeigt bekomme bei denen auch die Produkteigenschaften zugeordnet sind die über das Formular übergeben werden?

Dank euch,

gruß kash


Zuletzt bearbeitet von Kash am Do 31.05.2007 09:35, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
der_niegel

Dabei seit: 07.07.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 31.05.2007 11:31
Titel

Antworten mit Zitat Zum Seitenanfang

Sieht aus wie ASP und Access?!
Versuch mal in der Art:
Code:
sql = "SELECT DISTINCT p.*
        FROM [finder-produkte] p
        LEFT JOIN [finder-zuordnung] z
        ON p.id = z.IDPr
        WHERE z.IDEig IN (" & Request.Form("IDEig") & ")"


Voraussetzung ist hier, dass die Checkboxen durch Ihren Namen gruppiert wurden, d.h., sie alle das Attribut name="IDEig" haben. Das sollte eine kommaseparierte Liste ergeben. Testen konnte ich das leider nicht...


Zuletzt bearbeitet von der_niegel am Do 31.05.2007 11:34, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.05.2007 11:45
Titel

Antworten mit Zitat Zum Seitenanfang

hallo der_niegel,

danke für die antwort.

was meinst du mit der namensbezeichnung der checkboxes?
Momentan haben Sie als Bezeichnung die jeweilige ID die in der Datenbank vergeben wurde.
  View user's profile Private Nachricht senden
der_niegel

Dabei seit: 07.07.2005
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Do 31.05.2007 12:15
Titel

Antworten mit Zitat Zum Seitenanfang

Eine Liste von Checkboxen erzeugen in der Art:

Code:
sql = "SELECT id, bezeichnung FROM [finder-eigenschaften]"

rs.Open sql, connection

While Not rs.EOF
    Response.Write "<label><input type=""checkbox"" name=""IDEig"" value=""" & rs.Fields("id") & """ /> " & Server.HTMLEncode(rs.Fields("bezeichnung")) & "</label>"
    rs.MoveNext()
Wend


Damit haben alle Checkboxen den selben Namen und werden automatisch als kommaseparierte Liste / Array übergeben. Wenn nun bsplw. die erste und dritte Checkbox angehakt sind und deren values "1" und "3" sind, ergibt Request.Form("IDEig") einen Wert von "1, 3". Das ist dann gleich idealerweise in das andere sql-Statement zu übernehmen, wenn ich nicht irre.


Zuletzt bearbeitet von der_niegel am Do 31.05.2007 12:20, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.05.2007 13:26
Titel

Antworten mit Zitat Zum Seitenanfang

hallo der_niegel,

also das klappt.

bekomme ein kommasepariertes Ergebniss.
wenn das als String behandelt werden würde, könnte ich ja den inhalt der spalte dementsprechend aufbauen.
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.05.2007 13:33
Titel

Antworten mit Zitat Zum Seitenanfang

der_niegel hat geschrieben:
Sieht aus wie ASP und Access?!
Versuch mal in der Art:
Code:
sql = "SELECT DISTINCT p.*
        FROM [finder-produkte] p
        LEFT JOIN [finder-zuordnung] z
        ON p.id = z.IDPr
        WHERE z.IDEig IN (" & Request.Form("IDEig") & ")"


...


ähm kann es sein das dein Statement kleine Fehler enthält?
bsp:

**FROM [finder-produkte] p

sollte doch so geschrieben werden

**FROM [finder-zuordnung] AS p
  View user's profile Private Nachricht senden
Skyw4lker

Dabei seit: 30.08.2004
Ort: Bergisch Gladbach
Alter: 43
Geschlecht: Männlich
Verfasst Do 31.05.2007 13:43
Titel

Antworten mit Zitat Zum Seitenanfang

Kommt auf die DB an, manche wollen ein AS manche nicht.
  View user's profile Private Nachricht senden
Kash
Threadersteller

Dabei seit: 07.11.2002
Ort: Schopfheim
Alter: 41
Geschlecht: Männlich
Verfasst Do 31.05.2007 13:49
Titel

Antworten mit Zitat Zum Seitenanfang

also leider bekomme ich mit dem statement zu dem selben ergbniss wie mit meinem statement.
es ist einfach zum verrückt werden....


*** tja funktioniert doch nicht so wie ich wollte.war ein wenig zu voreilig.


Zuletzt bearbeitet von Kash am Do 31.05.2007 14:31, insgesamt 2-mal bearbeitet
  View user's profile Private Nachricht senden
 
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.