Zum Inhalt springen

Kategorien zuordnung


Empfohlene Beiträge

Servus ihr da

ich habn kleines Problem

hab hier versucht mein Tabelle KATEGORIE abzubilden

die Werte hab ich mit Hand eingebegen

man kann anhand von der KAT_PARENT_ID feststellen welchen Kategorie zu welcher Ober-Unterkategorie gehört

KAT_PARENT_ID = KAT_ID von Oberkategorie

zB:

Oberkategorie ----------------------->Auto

Unterkategorie--------> Sportwagen--- Geländewagen

Unterkategorie ------>Targa------Cabrio

KAT_ID-----------------------------------------------KAT_NAME-------------KAT_PARENT_ID

4477fe32b80c5faaaba2aa2fbf5bc9ba------Haus----------------------0

dcf1406c77a96c8623a67deb0a905d00---Auto---------------------- 0

4477fe32b80c5faaaba2aa2fbf5bc9bab----Eigentumshaus-------4477fe32b80c5faaaba2aa2fbf5bc9ba

4477fe32b80c5faaaba2aa2fbf5bc9bac----Mehrfamilienhaus----4477fe32b80c5faaaba2aa2fbf5bc9ba

dcf1406c77a96c8623a67deb0a905d01---Sportwagen------------dcf1406c77a96c8623a67deb0a905d00

dcf1406c77a96c8623a67deb0a905d02---Geländewagen--------dcf1406c77a96c8623a67deb0a905d00

dcf1406c77a96c8623a67deb0a905d01a--Targa--------------------dcf1406c77a96c8623a67deb0a905d01

dcf1406c77a96c8623a67deb0a905d01b--Cabrio-------------------dcf1406c77a96c8623a67deb0a905d01

mein Problem ist ich möchte das Ergebnis mit Hilfe von php so ausgeben das man erkennen kann

welche Oberkategorie welche Unterkategorien beinhalten

zu späteren Zeitpunkt auch noch löchen ändern und hinzufügen von Ober-Unterkategorien

hat einer von euch ne Ahnung wie man da am besten vorgeht

Gruss Flo

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi!

Da gibt's mehrere Möglichkeiten.

Die einfachste wäre vermutlich, einfach 'nen Haufen verschachtelter listen (<ul> <li> </ul>) zu erstellen.

Etwas aufwändiger wäre da z.B. ein dynamisch generiertes JavaScript, welches dir das ganze in 'ner Baumansicht darstellt.

Aber du wirst wohl in keinem Fall darum herum kommen, die einzelnen Kategorien und Unter-Kategorien rekursiv durchzuarbeiten.

Für die einfache Variante hab' ich hier mal 'nen code-schnipsel:


function BuildMessages($CurrID){

   $SQLQuery="SELECT * FROM Forum WHERE ParentID=$CurrID ORDER BY Datum DESC, Zeit DESC";

   $result=mysql_query($SQLQuery) or die ("<h3><font color=FF0000>" . mysql_error() . "</font></h3>");

   $NumberOfRows=mysql_num_rows ($result);

   echo "<ul type=\"disc\">\n";

   for($i=0;$i<$NumberOfRows;$i++){

      echo "<li><img src=\"" . mysql_result($result,$i, "IconURL") . "\">  <a href=\"forum.php?Action=ShowMessage&MessageID=" . mysql_result($result,$i, "MessageID"). "\">" . htmlentities(mysql_result($result,$i,"Ueberschrift")) . "</a> von " . mysql_result($result,$i,"Username") . "\n";

	  BuildMessages (mysql_result($result,$i,"MessageID"));

   }

   echo "</ul>\n";

}

Den müsstest du dann halt auf deine Bedürfnisse anpassen.

Die dynamische (JavaScript) Lösung ist vom Prinzip her ähnlich, nur schreibst du da dann halt irgendwelche JS-Codezeilen raus.

Hoffe, erstmal geholfen zu haben.

Gruß,

DSW

Link zu diesem Kommentar
Auf anderen Seiten teilen

War mal so frei und hab den Ansatz von DSW noch aufgebohrt um Deine "Zusatzwünsche" abzudecken. ;)


<?php
function ErstelleListe($CurrID)
{
$SQLQuery="SELECT * FROM tabelle WHERE ParentID=$CurrID";
$result=mysql_query($SQLQuery) or die ("<h3><font color=FF0000>" . mysql_error() . "</font></h3>");
$NumberOfRows=mysql_num_rows ($result);
if ($NumberOfRows>0)
{
echo "<ul type=\"disc\">\n";
}
while(list($ID,$name, ) = mysql_fetch_row($result))
{
echo "<li><a href=\"detail.php?oc=edit&ID=$ID\"><img src=\"edit.gif\"></a><a href=\"detail.php?oc=del&ID=$ID\"><img src=\"del.gif\"></a><a href=\"detail.php?oc=show&ID=$ID\">$name</a>");
ErstelleListe($ID);
}
echo "</ul>\n";
}
?>
[/PHP]

Ist prinzipiell das Gleiche wie das von DSW, bis darauf, dass ich die Forumsüblichen Dinger rausgeschmissen habe und stattdessen zwei Image-Hyperlinks eingefügt habe. Du musst Dir jetzt nur noch zwei Grafiken (edit.gif, del.gif) klauen und eine detail.php erstellen. In dieser fragst den OC ab, ob er "edit", "del" oder "show" ist und kannst dann je nach OC den Satz löschen, ändern oder betrachten.

Zum Hinzufügen packst ein Formular unten drunter, welches Du mit einer Listbox ausstattest, in der der Anwender die Parent-Kategorie wählen kann.

Das Ganze sieht dann ungefähr so aus:

[PHP]
<form action="add.php" method="post">
Name: <input type="text" name="KAT_NAME" size="50" maxsize="50">
Oberkategorie:
<select name="PARENT_ID" size="1">
<option value="0">Keine</option>
<?php
$SQLQuery="SELECT * FROM tabelle order by KAT_NAME";
$result=mysql_query($SQLQuery) or die ("<h3><font color=FF0000>" . mysql_error() . "</font></h3>");
while(list($ID,$name, ) = mysql_fetch_row($result))
{
echo("option value=\"$ID\">$name</option>")
}
?>
</select>
<input type="Submit" name="btnsub" value="Abschicken">
</form>

In der add.php machst dann Dein Insert auf die Tabelle und bietest einen Link an für zurück oder includest die alte Seite wieder.

Achtung: Ich konnte die Codeschnippsel leider nicht testen, es kann also sein, dass noch der eine oder andere syntaktische Fehler drin ist, aber prinzipiell sollte es so funktionieren! ;)

ICQ

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...