Brauche hilfe beim eigenem Forum mit smarty

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

  • Brauche hilfe beim eigenem Forum mit smarty

    Hallo also bin dabei mir ein eigenes Forum zu proggen
    brauche bloß bei 2 sachen mal hilfe
    Ist mit Smarty gemacht
    mein Problem ist ich weiß nicht wie ich das mit der Ausgabe
    machen soll so das die richtigen forums in der richtigen
    katogerie ist bsp
    [Allgemein]
    -Test1
    -Test2
    [Rest]
    -Restzeugst
    e.t.c
    wegen der abfrage und dann noch das ausgeben
    (mit den mods ausgeben genauso)
    und dann hab ich kein plan wie ich das mit dem Neuen Themen/ungelesene beiträge e.t.c machen soll
    hoffe ihr könnt mir mal helfen hier die dateien einmal als zip(anhang)
    und hier die wichtigen dateien als code
    index.php
    PHP-Code:
    <?php

    define
    ('SMARTY_DIR'$absoluter_pfad.'/smarty/');
    require(
    SMARTY_DIR.'Smarty.class.php');

    $select_db mysql_select_db($db['name']);


    $sql_config=mysql_query("
    select 
             *
     from 
            "
    .$prefix."_config 
      "
    );
       while(
    $row_config mysql_fetch_array($sql_config))
      {
         
    $sitename $row_config['sitename'];
         
    $standart_style $row_config['style'];
         
    $standart_language $row_config['language'];
         
    $description $row_config['description'];
         
    $allow_html $row_config['allow_html'];
         
    $allow_bbcode $row_config['allow_bbcode'];
          
    $allow_sig $row_config['allow_sig'];             
      }

    include (
    'inc/login.php');


    include (
    'inc/language.php');

    $catagories = array();
    $sql_catagories=mysql_query("
    select 
            *
    from  
            "
    .$prefix."_catagories order by nr asc 
    "
    );
    while(
    $row_catagories mysql_fetch_assoc($sql_catagories))
                    {
                     
    $catagories[] = $row_catagories;
                    }


        
    $smarty = new Smarty;
         require (
    'templatedaten.php');
        
    $smarty->assign("catagorie",$catagories);
        
    $smarty->display('index.tpl');
    ?>
    index.tpl
    Code:
    {* index tpl *}
    <table border="1" cellspacing="0" width="900" >
    <tr>
    <td>
    {foreach from=$catagorie item=catagorie}
    <table border="1" cellspacing="0" cellpadding="0" width="95%">
    <tr><td>
    {$catagorie.title}
    </td></tr>
    <tr><td>
    {$catagorie.id}
    </td></tr>
    </table>
    {/foreach}
    </td>
    </tr>
    </table>
    Angehängte Dateien
    Zuletzt geändert von eternitysoft; 05.07.2005, 15:45.

  • #2
    Die tabellen
    PHP-Code:
    $tables = array ("".$prefix."_catagories" =>"CREATE TABLE ".$prefix."_catagories (
                                  id int(10) DEFAULT '0' NOT NULL auto_increment,
                               title VARCHAR(100),
                               nr VARCHAR(5),
                               PRIMARY KEY (id),
                                       
                                       )"
    ,
                          
    "".$prefix."_forums" =>"CREATE TABLE ".$prefix."_forums (
                                  id int(10) DEFAULT '0' NOT NULL auto_increment,
                               cid int(10) NOT NULL,
                               name varchar(100),
                               description text,
                               password varchar(250),
                               last_topic varchar(100),
                               last_poster varchar(50),
                               posts varchar(5),
                               topics varchar(5),
                               nr varchar(5),
                               PRIMARY KEY (id)
                                       
                                       )"
    ,             
                                       
                          
    "".$prefix."_config" =>"CREATE TABLE ".$prefix."_config (
                                  id int(10) DEFAULT '0' NOT NULL auto_increment,
                               sitename varchar(100),
                               style varchar (255),
                               language varchar (255),
                               description text,
                               allow_html varchar(1),
                               allow_bbcode varchar(1),
                               allow_sig varchar(1),
                               posts_per_page varchar(3),
                               topics_per_page varchar(3),
                               PRIMARY KEY (id)
                                       
                                       )"
    ,             
                                       
    // 0 nein 1 ja
                          
    "".$prefix."_ranks" =>"CREATE TABLE ".$prefix."_ranks (
                           id int(10) DEFAULT '0' NOT NULL auto_increment,
                           title varchar(50) NOT NULL,
                           posts varchar(10) NOT NULL,
                           image varchar(250),
                           PRIMARY KEY(id),
                           )"
    ,

                             
    "".$prefix."_posts" =>"CREATE TABLE ".$prefix."_posts (
                           id int(10) DEFAULT '0' NOT NULL auto_increment,
                           tid int(10) DEFAULT '0' NOT NULL,
                           fid int(10) DEFAULT '0' NOT NULL,
                           pid int(10) NOT NULL,
                           text text,
                           sig_on varchar(0),
                           time varchar(20),
                           ip varchar(16),
                           PRIMARY KEY (id),                      
                                       )"
    ,
                                       
                           
    "".$prefix."_pns" =>"CREATE TABLE ".$prefix."_pns (
                           id int(10) DEFAULT '0' NOT NULL auto_increment,
                           subject VARCHAR( 80 ),
                           from_id INT(10),
                           from_user VARCHAR( 50 ) ,
                           to_id INT(10),
                           to_user VARCHAR( 50 ) ,
                           text TEXT,
                           time varchar(20),
                           PRIMARY KEY (id),                      
                                       )"
    ,

                          
    "".$prefix."_themes" =>"CREATE TABLE ".$prefix."_themes (
                           id int(10) DEFAULT '0' NOT NULL auto_increment,
                           name VARCHAR( 80 ),
                           url varchar(250),
                           PRIMARY KEY (id),                  
                                       )"
    ,
                                       
                          
    "".$prefix."_language" =>"CREATE TABLE ".$prefix."_language (
                           id int(10) DEFAULT '0' NOT NULL auto_increment,
                           name VARCHAR( 255 ),
                           PRIMARY KEY (id),                  
                                       )"
    ,             

                          
    "".$prefix."_topics" =>"CREATE TABLE ".$prefix."_topics (
                              id int(10) DEFAULT '0' NOT NULL auto_increment,
                              title varchar(100),
                              poster int(10),
                              time varchar(20),
                              views varchar(20),
                              answers varchar(20),
                              fid int(10) NOT NULL,
                              status int(10) DEFAULT '0' NOT NULL,
                              type int(10) DEFAULT '0' NOT NULL,
                              lastpost_time varchar(20),
                              PRIMARY KEY (id) ,
                              )"
    ,

                          
    "".$prefix."_users" =>"CREATE TABLE ".$prefix."_users (
                              id int(10) DEFAULT '0' NOT NULL auto_increment,
                              username varchar(40) ,
                              regdate varchar(20) ,
                              passwort varchar(250),
                              email varchar(50),
                              icq varchar(15),
                              website varchar(100),
                              job varchar(100),
                              come varchar(100),
                              interest varchar(150),
                              sig varchar(255),
                              style varchar(255),
                              language varchar(255),
                              aim varchar(18),
                              yim varchar(25),
                              msnm varchar(25),
                              posts int(10) DEFAULT '0',
                              attachsig varchar(1),
                              smile varchar(1),
                              html varchar(1),
                              bbcode varchar(1),
                              rank int(10) DEFAULT '0',
                              level int(10) DEFAULT '1',
                              PRIMARY KEY (id),
                              )"
    ,    

                             
    "".$prefix."_online" =>"CREATE TABLE ".$prefix."_online (
                              id int(3) DEFAULT '0' NOT NULL auto_increment,
                              ip varchar(255),
                              name varchar(255),
                              count varchar(255),
                              date varchar(255),
                              username varchar(40),
                              forum int(10),
                              PRIMARY KEY (id)
                              )"
    ,
                              
                             
    "".$prefix."_smilies" =>"CREATE TABLE ".$prefix."_smilies (
                              id int(10) DEFAULT '0' NOT NULL AUTO_INCREMENT,
                              code varchar(50),
                              smile_url varchar(100),
                              emotion varchar(75),
                              PRIMARY KEY(id),
                              )"
    ,
                             
    "".$prefix."_words" =>"CREATE TABLE ".$prefix."_words (
                              id int(10) NOT NULL AUTO_INCREMENT DEFAULT '0',
                              word varchar(100),
                              replacement varchar(100),
                              PRIMARY KEY(id),
                              )"
    ,
                             
    "".$prefix."_banlist" =>"CREATE TABLE ".$prefix."_banlist (
                               id int(10) NOT NULL AUTO_INCREMENT DEFAULT '0',
                               ban_userid int(10),
                               ban_ip varchar(16),
                               PRIMARY KEY(id),
                               )"
    ,
                             
    "".$prefix."_mods" =>"CREATE TABLE ".$prefix."_mods (
                               fid int(10) NOT NULL,
                               uid int(10) NOT NULL
                               )"
    ,                          
                                       ); 

    Kommentar


    • #3
      Was ist denn jetzt eigentlich dein Problem?

      Und wenn möglich, dann bitte in einer einigermaßen verständlichen Erklärung. Und so Dinger wie Satzzeichen sind für das Lesen auch ganz hilfreich...
      Simploo CMS - das einfache Webseiten-Bearbeitungsprogramm

      Kommentar


      • #4
        Du hast dir keine Logik erarbeitet... !

        Hier ein paar Anregungen:

        1. Verwende JOINS, verknüpfe in der Abfrage CAT und FOREN.
        2. Mache dir eine Variable, damit du eine 'temporäre' 'lastitem' hast zum überprüfen in der schleife
        3. gebe in der TPL die Kategorie nur aus, wenn sie gefültl ist, wofür du bei der Füllung selbst verantwortlich ist.

        Aber fang mal ganz langsam an, wenn du willst das man dir hilft!

        Beginne mit dem Thema: JOINS !

        Zeig uns dann mal dein Ansatz!

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          Original geschrieben von eintrachtemil
          Was ist denn jetzt eigentlich dein Problem?

          Und wenn möglich, dann bitte in einer einigermaßen verständlichen Erklärung. Und so Dinger wie Satzzeichen sind für das Lesen auch ganz hilfreich...
          Er sucht sich IMHO eine Logik, damit er seine Foren ästhetisch sortiert darstellen kann...

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #6
            also hätte das jetzt so gemacht:
            (benütze das zum erstenmal sry ist aber bestimmt nich ganz richtig)

            PHP-Code:
            $sql2 mysql_query("select * from ".$prefix."_catagories, ".$prefix."_forums WHERE ".$prefix."_catagories.id = ".$prefix."_forums.cid  ");


            $catagories = array();
            $sql_catagories=mysql_query("select * from ".$prefix."_catagories order by nr asc ");
            while(
            $row_catagories mysql_fetch_assoc($sql2))
                            {
                             
            $catagories[] = $row_catagories;
                             
                            } 
            EDIT:

            Hat nicht ganz geklappt:
            http://eternitysoft.pyrokar.lima-cit..._et/index2.php

            Zuletzt geändert von eternitysoft; 04.07.2005, 19:06.

            Kommentar


            • #7
              Würdest du, wenn man dir schon helfen möchte, auch die Tipps umsetzen?

              Wo ist dein JOIN Query Categorie ft. Foren ?!

              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
              sondern mit den Augen das Manual zu lesen.

              Kommentar


              • #8
                Original geschrieben von xManUx
                Würdest du, wenn man dir schon helfen möchte, auch die Tipps umsetzen?

                Wo ist dein JOIN Query Categorie ft. Foren ?!
                das habe ich im inet gefunden
                PHP-Code:
                das SQL-Statement

                      SELECT 
                FROM Mitarbeiter INNER JOIN Projekte ON Mitarbeiter.Nachname Projekte.Nachname    

                      SELECT 
                FROM MitarbeiterProjekte WHERE Mitarbeiter.Nachname Projekte.Nachname 
                und darauf habe ich die zeile geschrieben und daraus gelesen
                PHP-Code:
                $sql2 mysql_query("select * from ".$prefix."_catagories, ".$prefix."_forums WHERE ".$prefix."_catagories.id = ".$prefix."_forums.cid  "); 
                dachte wäre nunmal join wie gesagt hab den befehl noch nie benüzt

                mfg
                et

                Kommentar


                • #9
                  http://www.php-resource.de/forum/sho...threadid=28292

                  MrHappiness hat auch was nettes für dich.

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar


                  • #10
                    danke das du mir so helfen tust
                    PHP-Code:
                    $sql =mysql_query ("
                    SELECT
                        c.title, f.name, f.description
                    FROM
                        "
                    .$prefix."_catagories c
                        INNER JOIN "
                    .$prefix."_forums f ON c.id = f.cid
                    "
                    ); 
                    klappt auch soweit nur das er mit die katogerien doppelt ausgibt wenn z.B zwei foren dadrunter eingetragen sind oder dreifach wenn drei dadrunter eingetragen sind

                    http://eternitysoft.pyrokar.lima-cit..._et/index2.php

                    Kommentar


                    • #11
                      Gut. Nun machst Du aus:


                      PHP-Code:
                      $sql =mysql_query ("
                      SELECT
                          c.title, f.name, f.description
                      FROM
                          "
                      .$prefix."_catagories c
                          INNER JOIN "
                      .$prefix."_forums f ON c.id = f.cid
                      "
                      ); 

                      PHP-Code:
                      $sql =mysql_query ("
                      SELECT
                          c.title, f.name, f.description
                      FROM
                          "
                      .$prefix."_catagories c
                          INNER JOIN "
                      .$prefix."_forums f ON c.id = f.cid
                      ORDER BY 
                          c.title, f.name
                      "
                      ); 

                      Und widmest dich dem Punkt 2.

                      Tipp: Du füllst kontrolliert ein Array o. 2 mit den Ausgaben der Datenbank, so dass du es in Smarty ausgeben kannst.

                      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                      sondern mit den Augen das Manual zu lesen.

                      Kommentar


                      • #12
                        so gemacht
                        jetzt 2 sach bzw fragen

                        1.Wie meinst du das mit dem Array?

                        so?
                        PHP-Code:
                        while($row_catagories mysql_fetch_assoc($sql2))
                                        {
                                         
                        $catagories[] = $row_catagories;

                                        } 
                        wenn ja dann hab ich das
                        und wie gesagt wie kriege ich das hin das er eine Katogerie nicht 2 oder 3 mal ausgibt?
                        bsp:
                        momentan
                        Code:
                        [test3]
                        -test zu test3
                        
                        [Allgemeines]
                        -test zum forum Allgemeines
                        
                        [der rest]
                        -test zum Forum rest2
                        
                        [der rest]
                        -test zum forum rest
                        soll aber ja so sein
                        Code:
                        [test3]
                        -test zu test3
                        
                        [Allgemeines]
                        -test zum forum Allgemeines
                        
                        [der rest]
                        -test zum Forum rest2
                        -test zum forum rest
                        mfg
                        et

                        Kommentar


                        • #13
                          So ähnlich. Zum Beispiel so:

                          PHP-Code:
                          $lastitem time();
                           while(
                          $row_catagories mysql_fetch_object($sql2))  {
                              
                          $catname $lastitem != $row_categories '' $row_categories->catname;
                               
                          $lastitem $row_categories->catname

                                  
                          $catagories[] = array( 
                                                                      
                          'id' => $row_catagories->id,
                                                                      
                          'title' => $catname,
                                                                      
                          'forumname' => $row_categories->name 
                                                                    
                          );

                                          } 
                          Setzt voraus, dass die Kateogrie sortiert wird. Ist sicher nicht die beste Lösung, aber das soll ja nur ein Beispiel sein


                          BTW: Bitte umbrich deinen Beitrag weiter oben, damit man nicht horizontal scrollen muss !

                          In der TPL:

                          Code:
                          {foreach from=$catagorie item=categorie}
                          
                           {if $categorie.title != ''}
                             <br><br>{$catagorie.title} <br>
                            {/if}
                            --------> {$catagorie.forumname} <br>
                          {/foreach}
                          Zuletzt geändert von xManUx; 05.07.2005, 15:11.

                          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                          sondern mit den Augen das Manual zu lesen.

                          Kommentar


                          • #14
                            klappt irgendwie nicht richtig

                            http://eternitysoft.pyrokar.lima-cit..._et/index2.php

                            wegen dem ersten posts muss ich mal gucken an welche zeile es liegt

                            werde mal weiter versuchen
                            mfg
                            et
                            ps: die schreibfehler müsste ich soweit entfernt haben du hast ab und zu cate anstatten cata geschrieben ^^ geht aber immernoch nicht <.<

                            Kommentar


                            • #15
                              Weil ich wissen wollte, ob du überhaupt verstehst, was mysql_fetch_object() der Unterschied ist zu mysql_fetch_assoc() ist.

                              http://www.php-resource.de/manual.ph...l-fetch-object

                              PHP-Code:
                               $catname $lastitem != $row_categories->id '' $row_categories->catname
                              Sofern das nun klappen sollte, überlege dir mal selbst, wie man das eleganter gestalten kann. Ein paar Tipps, die du mal selbst versuchst zu lösen.

                              1. Query so lassen
                              2. Ausgabe in ein Array packen
                              3. Kontrolliert Array füllen und dieses mal so:

                              $array[] = array ( 'cat_name' => $var1, 'forums' => array ( FORUM_INFOS ) );

                              damit in der TPL:

                              Code:
                              {foreach from=$catagorie item=categorie}
                                <br><br>{$catagorie.title} <br>
                                  {foreach from=$catagorie.forums item=forums}
                                    {$forums.forumname} <br>
                                  {/foreach}
                              {/foreach}
                              Zuletzt geändert von xManUx; 06.07.2005, 07:12.

                              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                              sondern mit den Augen das Manual zu lesen.

                              Kommentar

                              Lädt...
                              X