Probleme mit DB-Abfrage

  • Themenstarter Themenstarter encom
  • Beginndatum Beginndatum
E

encom

Hallo, ich habe folgende DB-Struktur

Code:
wg_uk_id       wg_ok_id         wg_name
1                      0                         Festplatten
2                      0                         Drucker
3                      2                         Epson
4                      2                         Hewlett 
5                      1                         Maxtor

Nun übergebe ich über einen link OKID = 2 und UKID = 3

jetzt will ich die wg_name'n auslesen. Es sollte dann so aussehen

Drucker / Epson

Also Drucker hat die wg_uk_id 2, die aus der $_GET Variablen OKID kommt und Epson hat die wg_uk_id 3 und die wg_ok_id 2,

Kann mir einer sagen wie die abfrage aussehen muß dass ich beide namen so ausgegeben bekomme?

Danke
 
Kannst du die DB-Struktur nochmal genau angeben? Weil ich kann damit irgendwie persönlich nix anfangen.
Denn für mich ist nicht wirklich schlüssig, wann schaue ich nur nach OKID und wann nach beiden IDs (und vor allem Warum).

Also Drucker hat die wg_uk_id 2, die aus der $_GET Variablen OKID
Warum ist wg_UK_id gleich OKID, also nur von der Namenswahl her.
 
Die Namensgebung ist in der Tat etwas verwirrend, es ist aber so wie ich es angegeben habe richtig.

Also Die Datenbank ist so aufgebaut, alles was wg_ok_id eine 0 hat, iwst eine Oberkategorie. Nun hat z.B. Drucker die wg_uk_id eine 2, jetzt gehört alles unter die Hauptkategorie Drucker was als wg_ok_id auch die 2 hat.


ich habe ein menü dass so aussieht wenn ich auf Drucker geklickt habe.

Festplatten
Drucker
Epson
Hewlet Packard


Wenn ich nun auf Epson klicke, werden folgende variablen übergeben
OKID = 2
UKID = 3

Nun möchte ich folgendes ausgegeben haben "Drucker/Epson"

dies will ich als Link benutzen, so dass man einmal direkt wieder zu drucker kommt oder zum menüpunkt Epson.
 
Hmm ich würde es von der Struktur für die Logik zwar anders lösen,
aber so sollte es evtl. auch gehen:

PHP:
SELECT wg_name FROM `tabelle` WHERE ( $_GET[OKID] = wg_uk_id AND wg_ok_id = 0) OR ( $_GET[OKID] = wg_uk_id AND wg_ok_id = $_GET[UKID])

oder so ähnlich... also wo OKID = uk_id ist und 0 für die Oberkategorien und beides für Unterkategorien, aber sauber ist das dann später bei der Sortierung auch nicht... würde ne zweite Tabelle nehmen. Eine Für Ober und eine für Unterkategroien und diese Über eine Drite dann verbinden.
 
Also ich find die tabellenstruktur auch etwas unpraktisch, wüsste auch nicht so recht wie man das mit einer abfrage hingriegen sollte.
habs hier mal mit 2 abfragen gemacht, vorausgesetzt ich hab dein prob richtig verstanden.

Code:
$wg_uk_id = $_GET(OKID) ;
$wg_uk_id = $_GET(OKID) ;

if($wg_uk_id != 0)
{
$query_find_oberordner = "SELECT wg_name FROM tabellenname WHERE wg_uk_id='$wg_ok_id'";
$find_oberordner = mysql_db_query($dbase, $query_find_oberordner); 
$oberordner 	= @mysql_result($find_oberordner, 0, "wg_name");
}
 
$query_find_oberordner = "SELECT wg_name FROM tabellenname WHERE wg_uk_id='$wg_uk_id' AND wg_uk_id='$wg_uk_id'";
$find_unterordner = mysql_db_query($dbase, $query_find_oberordner); 
$unterordner 	= @mysql_result($find_unterordner, 0, "wg_name");

if($oberordner && $unterordner)
 echo "$oberordner/$unterordner";

gruß, vyanna
 
Zurück