Forumscript

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Forumscript

    Ich verscuhe mich derzeit an einer Art Forumscript, und scheitere leider schon beim anfang oO. Der Aufbau des Forum sieht so ähnlich aus wie dieses Forum. Also eine Arty Category unter dieser sind die Jeweiligen Topics.

    Das anlegen der Categorien und der Topics geht.

    Jetzt kommen wir zum auslesen:

    Ich habe folgenede Categorien angelegt.

    Zum einen Grafikkarten, zum anderen Prozessoren, mit den jeweiligen Topics

    Grafikkarte / ATI ; Grafikkarte / NVIDIA; Grafikkarte / VOODOO

    Prozessoren / AMD ; Prozessoren / Intel;

    Jetzt will ich es ebend so auflisten, das halt als Categorien ebend, Grafikkarten und Prozessoren und darunter halt die Topics.

    Also sollte es so aussehen:

    Grafikkarten
    ATI
    NVIDIA
    VOODOO

    PROZESSOREN
    AMD
    INTEL

    Nur bei mir sieht es so aus

    Grafikkarten
    ATI

    Grafikkarten
    NVIDIA

    Grafikkarten
    VOODOO


    PROZESSOREN
    AMD

    PROZESSOREN
    INTEL

    Leider : (

    so less ich die DB aus:


    Code:
    <?
    
                      $forum_query = mysql_query("SELECT *
    FROM forum_category, forum
    WHERE forum.category_id  = forum_category.id
    ORDER BY forum_category.id, forum.id ASC");
    
                      $forum_num   = mysql_num_rows($forum_query);
    
                      while($forum_data  = mysql_fetch_array($forum_query))
                           {
    
    ?>
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
      <tr>
        <td width="100%"><b><? echo $forum_data[categoryname]; ?></b></td>
      </tr>
      <tr>
        <td width="100%"><i><? echo $forum_data[topicname]; ?></i></td>
      </tr>
    
    
    </table>
    
    <?
    }
    ?>
    Wie muss ich den befehl schreiben, das es mir so anzeigt, wie ich es oben haben möchte.

    Danke

    EDIT:
    $scrolling = false;
    // by Abraxax

    Zuletzt geändert von Abraxax; 02.08.2004, 07:51.

  • #2
    Re: Forumscript

    PHP-Code:
    <?
    while($forum_data  = mysql_fetch_array($forum_query))
    {
    ?>
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
      <tr>
        <td width="100%"><b><? echo $forum_data[categoryname]; ?></b></td>
      </tr>
      <tr>
        <td width="100%"><i><? echo $forum_data[topicname]; ?></i></td>
      </tr>
    </table>
    <?
    }
    ?>
    Da ist der Fehler, du gibst die Kategorie bei jeder Schleife aus.....vielleicht besser so??? nicht ganz perfekt, sollte aber funktionieren *g*
    PHP-Code:
    <?php
    while($forum_data  mysql_fetch_array($forum_query))
    {
    ?>
    <table border="1" cellpadding="0" cellspacing="0" width="100%">
      <tr>
        <td width="100%"><b><? echo $forum_data[categoryname]; ?></b></td>
      </tr>
    <?php
      
    while($forum_data  mysql_fetch_array($forum_query))
      {
    ?>
      <tr>
        <td width="100%"><i><? echo $forum_data[topicname]; ?></i></td>
      </tr>
    <?php
      
    }
    echo 
    "</table>";
    // break; (vielleicht noch, sollte aber auch ohne funzen ^_~)
    }
    achja....du kennst das [ php ]-Tag??? Das Code Tag hat nicht ganz den gewünschten Effekt ^_~
    Zuletzt geändert von ghostgambler; 02.08.2004, 08:20.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Erstmal Danke : )

      Nur sieht der aufbau jetzt so aus:

      PROZESSOR
      AMD
      INTEL
      ATI
      NVIDIA
      VOODOO
      Zuletzt geändert von Toxic; 02.08.2004, 10:33.

      Kommentar


      • #4
        Original geschrieben von Toxic
        Erstmal Danke : )

        Nur sieht der aufbau jetzt so aus:

        PROZESSOR
        AMD
        INTEL
        ATI
        NVIDIA
        VOODOO
        Immerhin besser als vorher ^_^ (son scheiß *meckermoser*....*drop*¬_¬)

        also nochmal *seufz*

        *überleg*.....*weiter überlegt*....kann ich mal die Aufteilung der beiden Tables sehen??? Also n Screene oder so von phpmyadmin oder so...von mir aus auch den CREATE Code....nur irgendwas??? Würde sehr viel helfen, ansonsten kann ich dir nu vage Hinweise geben *g*

        Du musst dann einfach zwei SELECTS machen, das eine benutzt du für die Oberbegriffe, dann liest du in der While-Schleife durch eine weitere SELECT-Anweisung die Topics aus, durch ein WHERE Oerbegriff=$forum_data[categoryname]...oder so ähnlich, weiß ja nicht wie deine DB strukturiert ist XD

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Naja, ich habe es jetzt mit 2 Abfragen gemacht.

          PHP-Code:
          <table border="1" cellpadding="0" cellspacing="0" width="100%">
            <tr>
              <td width="100%">
                <center>

                  <a href="<? echo $PHP_SELF; ?>?link=forum&new_category=true"  target="_self">Neue Category</a>
                  <a href="<? echo $PHP_SELF; ?>?link=forum&new_topic=true"  target="_self">Neues Topic</a></center>

              </td>
            </tr>
          </table>

          <?

          $forum_category_query = mysql_query("SELECT * 
          FROM forum_category ORDER BY id ASC");

          $forum_category_num   = mysql_num_rows($forum_category_query);

          while($forum_category_data  = mysql_fetch_array($forum_category_query))
                {

          ?>

          <table border="1" cellpadding="0" cellspacing="0" width="100%">
            <tr>
              <td width="100%"><b><? echo $forum_category_data[categoryname]; ?></b></td>
            </tr>

          <?

          $forum_query = mysql_query("SELECT * FROM forum 
          WHERE forum.category_id  =  $forum_category_data[id]");

          $forum_num   = mysql_num_rows($forum_query);

          while($forum_data  = mysql_fetch_array($forum_query))
                {

          ?>

            <tr>
              <td width="100%"><i><? echo $forum_data[topicname]; ?></i></td>
            </tr>

          <?
          }
          ?>

          </table>

          <?
          }
          ?>
          Gibt es aber eine möglichkeit alles in einer Abfrage zu machen?
          Zuletzt geändert von Toxic; 03.08.2004, 11:20.

          Kommentar


          • #6
            Gibt es aber eine möglichkeit alles in einer Abfrage zu machen?
            Aber du willst doch bestimmt hinterher noch nen Link drum setzen, damit man sich die Kategorien anschauen kann, oder???

            So, hab mal meine Mutter gefragt, die hat damit mehr zu tun als ich XD
            Also, du kannst ja einfach die Unterkategorien ausgeben lassen, mit nem JOIN und in einer anderen Spalte den Kategorie-Namen.
            D.h. du bekommst dann etwa sowas, mit zwei Spalten:

            Grafikkarten ATI
            Grafikkarten NVIDIA
            Grafikkarten VOODOO
            PROZESSOREN AMD
            PROZESSOREN INTEL

            In PHP, prüfst du dann, ob eine neue Kategorie angefangen hat, indem du einfach die vorige in einer Variablen speicherst, und dann
            PHP-Code:
            if ($vorigeKategorie!=$row['Oberkategorie']) {
             echo 
            "<tr><th>" $row['Oberkategorie'] . "</th></tr>";
            }
            echo 
            "<tr><td>&nnbsp;nbsp;" $row['Kategorie'] . "</td></tr>";
            $vorigeKategorie=$row['Oberkategorie']; 
            Und das packst du dann in die while-Schleife. Sollte funktionieren, und wenn du dir dann noch die ID ausgeben lässt der Unterkategorie, dann kannst du da auch noch nen Link drum setzen, usw.....das war doch das, was du wolltest, oder???

            Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

            bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
            Wie man Fragen richtig stellt

            Kommentar

            Lädt...
            X