Ankündigung

Einklappen
Keine Ankündigung bisher.

Smarty + MySQL = immer falsche Ausgabe

Einklappen

Neue Werbung 2019

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

  • #31
    Verstehe nicht, was Du da brauchst.
    Zeig mal den php Code.

    Kommentar


    • #32
      Hier mein php code:
      PHP-Code:
       <? 
      $sql = "SELECT id,mainid,name,beschreibung,typ FROM gs_boards WHERE typ = 1";
        $gs_boards = mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
        $boards = array();
        while ($board_row = mysql_fetch_assoc($gs_boards)) {
          $boards[] = $board_row;
        }

        $sql = "SELECT id,mainid,name,beschreibung,typ FROM gs_boards WHERE mainid = '".$boards[$i][id]."'";
        $gs_unterboards= mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
        $unterboards = array();
        while ($unterboards_row = mysql_fetch_assoc($gs_unterboards)) {
          $unterboards[] = $unterboards_row;
        }

      $smarty->assign('boards', $boards);
      $smarty->assign('boards2', $unterboards);
      $smarty->display('board.tpl');

      ?>

      Kommentar


      • #33
        $sql = "SELECT id,mainid,name,beschreibung,typ FROM gs_boards WHERE mainid = '".$boards[$i][id]."'";
        $gs_unterboards= mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
        $unterboards = array();
        while ($unterboards_row = mysql_fetch_assoc($gs_unterboards)) {
        $unterboards[] = $unterboards_row;
        }
        mach das doch einfach schon innerhalb der while-Schleife
        while ($board_row = mysql_fetch_assoc($gs_boards)) {
        $boards[] = $board_row;
        }
        die gesuchte id steht dort in $board_row['id']


        btw: http://de2.php.net/manual/en/languag...es.array.donts

        Kommentar


        • #34
          damit wäre ich dann wie am anfang des threads und es sieht dann nunmal so aus wenn wir es auf deine dateien beziehen die du geschrieben hattest:
          So muss es aussehen:

          So sieht es leider aus:

          so sieht der code dazu aus:
          PHP-Code:
          <?php
          $section 
          $_GET['section'];
          switch(
          $section) {



          case 
          "test":

            
          $sql "SELECT id,mainid,name,beschreibung,typ FROM gs_boards WHERE typ = 1";
            
          $gs_boards mysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
            
          $boards = array();
            while (
          $board_row mysql_fetch_assoc($gs_boards)) {
              
          $boards[] = $board_row;


            
          $sql "SELECT id,mainid,name,beschreibung,typ FROM gs_boards WHERE mainid = '".$board_row[id]."'";
            
          $gs_unterboardsmysql_query($sql) or die("Error using mysql_query($sql): ".mysql_error());
            
          $unterboards = array();
            while (
          $unterboards_row mysql_fetch_assoc($gs_unterboards)) {
              
          $unterboards[] = $unterboards_row;
            }
           }

          $smarty->assign('boards'$boards);
          $smarty->assign('boards2'$unterboards);
          $smarty->display('board.tpl');

          break;
          ?>

          Kommentar


          • #35
            Ja, damit sind wir wieder am Anfang.
            Das liegt ...unter anderem daran, dass Du die Foren wieder nicht den Kategorien zuordnest, sondern einzeln an Smarty übergibst.
            Warum tust Du das? Wozu die ganzen Erklärungen, wenn Du doch nur wieder den selben Scheiss machst?

            Zitat von m0use`
            vielleicht so?

            PHP-Code:
            Array
            (
                [
            id] => 1
                
            [name] => catA
                
            [foren] => Array
                                (
                                 [
            id] => 1
                                 
            [name] => forenA
                                
            )

            Wo ist das Element foren in Deinem Code ?
            ?

            Kommentar


            • #36
              Ah okay genau, so nun muss ich es nur noch mit smarty hinbekommen, wo ich mir erstmal was Überlegen muss vllt. mit if?
              PHP-Code:
              Array
              (
                  [
              0] => Array
                      (
                          [
              id] => 1
                          
              [mainid] => 0
                          
              [name] => Allgemeines Board
                          
              [beschreibung] => Hi @Allgemeiens Board
                          
              [typ] => 1
                      
              )

                  [
              unterforen] => Array
                      (
                          [
              0] => Array
                              (
                                  [
              id] => 2
                                  
              [mainid] => 1
                                  
              [name] => Support Board
                                  
              [beschreibung] => test
                                  
              [typ] => 0
                              
              )

                          [
              1] => Array
                              (
                                  [
              id] => 3
                                  
              [mainid] => 1
                                  
              [name] => Technik bereich
                                  
              [beschreibung] => test2
                                  
              [typ] => 0
                              
              )

                          [
              2] => Array
                              (
                                  [
              id] => 4
                                  
              [mainid] => 1
                                  
              [name] => ^^
                                  [
              beschreibung] => ^^
                                  [
              typ] => 0
                              
              )

                          [
              3] => Array
                              (
                                  [
              id] => 7
                                  
              [mainid] => 6
                                  
              [name] => threaddata
                                  
              [beschreibung] => test
                                  
              [typ] => 0
                              
              )

                      )

                  [
              1] => Array
                      (
                          [
              id] => 6
                          
              [mainid] => 0
                          
              [name] => kategorie
                          
              [beschreibung] => test
                          
              [typ] => 1
                      
              )


              Kommentar


              • #37
                Da ist doch immer noch keine Zuordnung Forum->Unterforen drin.
                Die "Unterforen" sind irgendwo gebündelt im Feld der Foren enthalten.
                Was bringt das? Was hat das mit dem zu tun, was wir vorher gemacht haben?

                Dein $boards entspricht categories in meinen Beispielen - sollte es jedenfalls.

                Kommentar


                • #38
                  ja danach hatte ich es auch gemacht also nach $categories hm muss es nochmal versuchen.

                  Kommentar


                  • #39
                    wie wäres denn damit

                    PHP-Code:
                    Array
                    (
                        [
                    0] => Array
                            (
                                [
                    id] => 1
                                
                    [mainid] => 0
                                
                    [name] => Allgemeines Board
                                
                    [beschreibung] => Hi @Allgemeiens Board
                                
                    [typ] => 1
                                
                    [unterforen] => Array
                                                         (
                                                          [
                    0] => Array
                                                                   (
                                                                    [
                    id] => 2
                                                                    
                    [mainid] => 1
                                                                    
                    [name] => Support Board
                                                                    
                    [beschreibung] => test
                                                                    
                    [typ] => 0
                                                                 
                    )
                                                          [
                    1] => Array
                                                                   (
                                                                    [
                    id] => 3
                                                                    
                    [mainid] => 1
                                                                    
                    [name] => Technik bereich
                                                                    
                    [beschreibung] => test2
                                                                    
                    [typ] => 0
                                                                 
                    )
                                                          )
                            )

                    Ich lerne PHP und es macht mir Spass!

                    Kommentar


                    • #40
                      Klar. Das Ziel ist, dass Du mit {foeach} (oder {section} , ist egal) über das Feld aller Hauptforen gehst. Innerhalb der Schleife hast Du eine Variable, die dieses Hauptforum beschreibt. UNd in dieser Variablen soll es jeweils ein weiteres Feld geben, mit den Daten der jeweiligen Unterforen. Über dieses Feld kannst Du wieder mit {foreach} drübergehen. ein {foreach} in einem {foreach} also.

                      Kommentar


                      • #41
                        man könnte das Ganze so aufbauen:

                        PHP-Code:
                        $forum 0;
                        $subforum 0;

                        while(
                        $result mysql_fetch_array($query)){

                          
                        $forum_array[$forum] = array(
                            
                        'id' => $result['id'],
                            
                        'forumname' => $result['irgenwas'],
                            
                        'sub' => '');

                          
                        // unterforen
                          
                        while($result mysql_fetch_array($query)){

                            
                        $forum_array[$forum]['sub'][$subforum] = array(
                              
                        'id' => $result['id'],
                              
                        'subforumname' => $result['irgenwas']);

                          
                        $subforum++;
                          }
                        $forum++;
                        }

                        $smarty->assign('FORUM'$forum_array);

                        // SMARTY

                        {foreach name=forum item=data from=$FORUM}
                        Forum: {$data.forumname}


                        {foreach 
                        name=subforum item=data2 from=$FORUM.sub}
                        Unterforum: {$data2.subforumname}
                        {/foreach}

                        {/foreach} 
                        Ich lerne PHP und es macht mir Spass!

                        Kommentar


                        • #42
                          Ich häät's ja gut gefunden, wenn OP alleine darauf gekommen wäre. Aber ich gebe zu, dass wir so nicht weitergekommen sind und dass ich das Thema auch gerne los sein will.

                          Man braucht nicht mal die Zähler für das Feld
                          PHP-Code:
                          $categories = array();
                          while(
                          $row_cat=mysql_fetch_array($result_cat)) {
                              
                          $sql 'SELECT id,name,beschreibung FROM gs_boards WHERE mainid='.(int)$row_cat['id'];
                              
                          $result_forum mysql_query($sql$db) or die(mysql_error());
                              
                              
                          $row_cat['forums'] = array();
                              while(
                          $row_forum=mysql_fetch_array($result_forum)) {
                                  
                          $row_cat['forums'][] = $row_forum;
                              }
                              
                              
                          $categories[] = $row_cat;

                          http://bruchpilot.br.funpic.de/beispiele/m0use-3/

                          Kommentar


                          • #43
                            Hallo,

                            kann ich hier (in einem zwei Jahre altem Fred) noch einklinken und meine n00b-Fragen stellen?

                            Ich habe nämlich das gleiche Problem, das ich aus einer verschachtelten MySQL-Abfrage Informationen an Smarty geben möchte. Ich weiß jedoch nicht wie das gehen soll ... und ich habe das, was hier im Fred steht auch nicht wirklich so vestanden.

                            Funktionswunsch:
                            Die index.tpl wird zuerst geladen und soll das "Grundgerüst" bzw. den Aufbau festlegen. Die kunde.tpl listet nur (sozusagen als "Kopf") die entsprechenden Kunden auf und die liste.tpl die zu den Kunden gehörende Domain.

                            Beispiel:
                            Code:
                            Kunde A                                 (template kunde.tpl)
                            - domain123.tld                       (template liste.tpl)
                            - domain234.tld                       (template liste.tpl)
                            - domain345.tld                       (template liste.tpl)
                            
                            Kunde B                                 (template kunde.tpl)
                            - domain987.tld                       (template liste.tpl)                       
                            - domain876.tld                       (template liste.tpl)
                            - domain765.tld                       (template liste.tpl)
                            
                            usw.
                            Meine dazugehörige Abfrage in PHP sieht bis jetzt (denn weiter komme ich nicht) so aus:
                            PHP-Code:
                            <?php
                            include('connect.inc.php');

                            define('SMARTY_DIR','smarty/libs/');
                            require(
                            SMARTY_DIR.'Smarty.class.php');
                            $smarty = new Smarty();
                            $smarty->template_dir 'templates/';
                            $smarty->compile_dir 'templates_c/';
                            $smarty->config_dir 'configs/';
                            $smarty->cache_dir 'cache/';
                            //$smarty->debugging = true;

                            $sql=mysql_query("SELECT id,knr,name FROM archive LIMIT 10") OR die(mysql_error());
                            $kunden_array = array();
                            while(
                            $row=mysql_fetch_array($sql))
                            {
                                
                            $kunden_array[] = array(
                                  
                            'id' => $row['id'],
                                  
                            'knr' => $row['knr'],
                                  
                            'name' => $row['name']);

                            // Übleibsel vom Code, wo auch das Style in PHP
                            // "integriert" war.
                            // $abf_domains=mysql_query("SELECT * FROM archive_dom WHERE kundeid='".$row['id']."' ORDER BY domain ASC") OR die(mysql_error());
                            //    while($row=mysql_fetch_assoc($abf_domains))
                            //    {    $domid=($row['id']);
                            //        $domain=($row['domain']);}

                            }

                            $smarty->assign('kunden_array',$kunden_array);

                            $smarty->display('kunden.tpl');
                            $smarty->display('index.tpl');

                            ?>
                            und das Template kunden.tpl so:
                            Code:
                            <div align="left" width="100%">
                            <div align="left" style="background-color: #C0C0C0">Domains</div>
                            {foreach from=$kunden_array item=kunden_array name=kunden_array}
                            KNR: {$kunden_array.id} {$kunden_array.knr} {$kunden_array.name}
                            <br>
                            {/foreach}
                            </div>
                            Ich weiß, sieht noch nicht so prall aus, soll aber dann kommen, wenn ich weiß, was als nächstes kommt und wie das mit Smarty überhaupt funktioniert (bis gestern dachte ich noch, das wären die kleinen bunten Dinger mit der Schokolade drinne).

                            Wie bekomme ich nun die zu den Kunden gehörenden Domains in die Liste???

                            Ich danke schon mal im voraus

                            error404

                            Kommentar


                            • #44
                              kann ich hier (in einem zwei Jahre altem Fred) noch einklinken und meine n00b-Fragen stellen?
                              nein, mach nen neuen auf und verlinke den hier ggf.

                              Kommentar


                              • #45
                                Hallo und sorry das ich hier gepostet habe.

                                Eventuell sollte dieser Thread dann geschlossen werden, damit hier nicht mehr unerwünscht gepostet werden kann.

                                Kommentar

                                Lädt...
                                X