SQL Problem

EuroCent

Klappstuhl 2.0
Hi ho... :P

Folgendes Problem

Ich hab eine Tabelle namens prefix
In dem sind Felder:

- pid => INT auto primär
- ptitle => varchar
- parentfid => text

Einträge:

- 1
- Hilfe
- 1,2,3,4,5,6,7,8

- 2
- Frage
- 3,4,7,13

- 3
- Problem
- 4

Nun zum vorhaben:

Ich möchte nun wenn jemand in dem Forum mit der ID 4 ist das dort unter Prefix auch nur diese in der Tabelle Prefix => Feld parentfid alle Prefixe aufgelistet werden.

Sprich diese würde dann so aussehen:

Prefix => Hilfe | Frage | Problem

Wie kann ich dies realisieren?

hier mal meine Abfrage der ganzen Prefixe:

PHP:
<?php
				$prefixe = $db->query("SELECT * FROM prefix");
					while($row = $db->fetch_array($prefixe)) {
						if(getUserData(rechte) == 'user' || getUserData(rechte) == '') {
							if($row['pid'] != 1 && $row['pid'] != 2) {
								echo "<option value=\"".$row['pid']."\">".$row['ptitle']."</option>\n";
							}
						} elseif(getUserData(rechte) == 'mod') {
							echo "<option value=\"".$row['pid']."\">".$row['ptitle']."</option>\n";
						} else {
							echo "<option value=\"".$row['pid']."\">".$row['ptitle']."</option>\n";
						}
					}
?>

egal in welches Forum ich gehe alle Prefixe werden mir immer angezeigt wie kann ich das verhindern sodass nur prefixe dort gezeigt werden wenn die Forenid auch unter parentfid steht

MfG

Der nervende Lenox :P
 
PHP:
$sql = "SELECT a.*, b.* FROM prefix a LEFT JOIN forum b ON a.parentfid = b.forumid";

forum mit dem namen deiner tabelle austauschen und forumid mit dem richtigen spaltennamen.
 
Soweit war ich auch aber der Ansatz ist nicht den den ich brauche

Wie du siehst ist die parentfid als typus Text somit würde er mir nie Prefixe anzeigen

Schau dir nochmal mein Beispiel an den meine Forenids sind immer nur einstellig sprich es gibt immer nur eine ID nicht ID, ID, ID iwe in parentfid ^^

Aber dennoch danke für deine versuchte Hilfe leider ist es nicht das was den erfolg erzielt
 
Na woher soll dann PHP wissen in welchem Forum du bist?
dann erstelle doch noch eine weitere spalte in der Tabelle präfixe. in der speicherst du halt die forumid.

- pid => INT auto primär
- forumID => int(11)
- ptitle => varchar
- parentfid => text
 
Die ID bekommt er über die URL

Wobei es hierbei sich vorerst um ein test handelt

Wenn es fertig funktioniert werd ich LEFT JOIN verwenden vorerst mach ich es über die URL

Wie gesagt...

in der parentfid befinden sich die ForumIDs daher steht der Typus auf Text
Den in der Parentfid stehen die einzelnen Forenids

Damit will ich bezwecken das nur unter parentfid die forenids *1,2,23* nur diese prefixe angezeigt werden sollen.

Mach ich es mit LEFT JOIN angabe bekomme ich lediglich das Selectfeld ohne Inhalt ^^

Wenn ich forumid mit in prefix nehme was soll ich dann noch mit parentfid? und zu mal dann meine prefix Tabelle bei mehr als 25Foren zugeschrieben ist so das selbst ich kaum noch den Durchblick finde

Parentfid dient mir ausserdem noch dazu das ich in meinem ACP über Mehrfach auswahl der Foren sagen kann wo alles Hilfe der Prefix angezeigt werden soll.

In meinem Projekt arbeiten 3Admins und 6Moderatoren und diese wollen auch damit klar kommen sowie ich und ich muss es denen noch erklären

Beispiel wie ich es zuvor mal gedacht hatte;

PHP:
$row['parentfid'] = "1,2,23,58";
$parentfid = str_replace(",", "\n", $row['parentfid']);
// Als beispiel käme dann
/*
1 => Forenid 1
2 => Forenid 2
23 => Forenid 23
58 => Forenid 58
*/

Hoffe du weisst jetzt was ich damit sagen und bezwecken möchte
 
Zurück