Optionen aus Datenbank holen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Optionen aus Datenbank holen

    Hallo.

    Ich habe vor für bestimmte Kategorien gewisse Optionen aus der Datenbank zu holen. Also zum Beispiel:

    Es gibt 3 Kategrien: Beginner, Profi und Experte

    Je nach Kategorie sollen dann bestimmte Optionen aufgegeben werden. Für die Kategorie Beginner sollen die Optionen: Einweisung, DNS und IP-Adresse aufgegeben werden. Für die Kategorie Profi sollen zusätzlich zum Beginner die Option: PHP und für den Experte zusätzlich zum Profi die Option: Datenbank aufgegeben werden.

    Meine Frage ist daher. Wie baut man diese Tabelle in einer MySQL-Datenbank am besten auf. Mir fehlt da irgendwie die optimale Lösung. Stehe da auf dem Schlauch.
  • Würde 2 Tabellen machen:

    1. Modus
    2. Optionen

    Dann jedem Modus die Options ID mit "," zuweisen, dann kannst du mit explode in PHP ganz einfach die Optionen auslesen .
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Danke für die Anregung. Aber eine Frage hab ich dazu.

    Wie kann ich denn in einer Mysql-Anweisung explode einbringen.

    Ich hab das ganze jetzt mal gemacht. Und es klappt eigentlich. Bis jetzt. Aber ich glaube es ist zu unübersichtlich. Kann man das einfacher machen?

    Quellcode

    1. $tarif_lesen = 'select s_name,block from tarife WHERE s_name = "'.$_SESSION['tarif'].'"';
    2. $tarif_einlesen = mysql_query($tarif_lesen);
    3. $field = mysql_fetch_assoc($tarif_einlesen);
    4. $opts_lesen = 'select * from optionen';
    5. $opts_einlesen = mysql_query($opts_lesen);
    6. while($opts = mysql_fetch_assoc($opts_einlesen)) {
    7. $teile = explode(",", $opts['o_block']);
    8. foreach ($teile as $key1 => $value1) {
    9. if ($value1 == $field['block']) {
    10. echo $opts['o_longname'].'<br />';
    11. }
    12. }
    13. }
    Alles anzeigen
  • Hört sich für mich nach einer ganz normalen Verbindung an. Würde da nicht mit explodes arbeiten.

    Quellcode

    1. $sql = "SELECT Kategorie,Option FROM Kategorien NATURAL JOIN Optionen;";
    2. $res = mysql_query($sql);
    3. while($row = mysql_fetch_object($res)) {
    4. echo $row->Kategorie;
    5. echo $row->Option;
    6. echo '<br />';
    7. }
    Bilder
    • sql-join-1-cn.png

      7,35 kB, 352×218, 410 mal angesehen
  • Danke für die Antwort. Aber ich werd daraus nicht schlau . ich habe mir auch schon mal die JOIN-Storries im web durchgelesen - kapier das aber irgenwie nicht.

    Wie kann ich die JOINS in meinem Beispiel umsetzen. Mit d0nUt´s Beispiel komme ich irgenwie nicht klar. Ich kann die Grafik verstehen. So ist auch meine Datenbank aufgebaut. Aber wie kommst du dann auf den Code (darüber). Bei mir wird nichts ausgegen auch wenn ich den Code anpasse. Was soll denn passieren? Oder besser. Wie soll das passieren.
  • Das gibt ein Error.

    Das SQL-Statement muss so lauten:

    Quellcode

    1. SELECT Kategorien.Kategorie, Optionen.Option FROM Kategorien NATURAL JOIN Optionen;


    Dessweiteren würde ich keine Spalte mit dem Namen Option verwenden, Weil Option ein Statement ist, was sich auf Tabellen-Optionen bezieht. Jedoch ist es nicht falsch, da Option nicht reserviert ist, Beispiel: Bei Oracle haste damit nen Problem :) Das nur mal so am Rand.

    Was D0nUt macht, ist mit Hilfe von NATURAL JOIN 2 Tabellen (Kategorien, Optionen) über die Gleichheit aller gleichlautenden Spalten zu verknüpfen.
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.