Templates: Schleife in Schleife ?

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

  • Templates: Schleife in Schleife ?

    Hallo,

    ich habe mir die Template Class von phpguru.org runtergeladen -> Class als Anhnag mit dabei .

    Nun ist es so, dass ich die loop_parse Funktion dieser Klasse benutze um meine Zeilen aus einer Datenbank rauszugeben. Da in der Spalte Spieler nicht nur ein Wert vorliegt sondern 2 - 8 (sieht z.B. so aus Spieler1===Spieler2) muss quasi innerhalb der ersten Schleife noch eine Schleife die Spieler parsen.

    Leider gibr er mir immer nur die Einträge aus der ersten Zeile in der DB aus warum? Hier der LINK zum SCRIPT

    CODE sieht folgendermaßen aus:

    PHP-Code:
    <?php 

            
    include('includes/main.inc.php');
            include(
    'includes/template.inc.php');
            
    $tpl = new template;
            
    $tpl->load_file('header''templates/header.html');
            
    $tpl->load_file('main''templates/ausgabe.html');
            
    $tpl->load_file('footer''templates/footer.html');

                
    $title "WC3 Replay-Archiv";


    /******************************************* 
    ** BEGINN Bildung des Datenarrays 
    *****************************************************************************************************************/

            
    $res mysql_query("SELECT * FROM $sqlTable"
            or die(
    "Scheint ein Fehler vorzuliegen: ".mysql_error());
            
    $num mysql_num_rows($res);

            
    $i 0;
            while(
    $i $num){

            if(
    $i 2){$td "td2";}
            else{
    $td "td1";}

            
    $fetch mysql_fetch_array($res);
            
    $row[] = array( 'MODUS' => $fetch['Modus'],
                            
    'SPIEL' => $fetch['Spiel'],
                            
    'DATUM' => $fetch['Datum'],
                            
    'MAP' => $fetch['Map'],
                            
    'DL' => $fetch['DL'],
                            
    'TD' => $td
            
    );
            
    $spieler explode("==="$fetch['Spieler']);
            
    $x=0;
            while(
    $x count($spieler)){
            
    $spieler_array[] = array(      'SPIELER1' => $spieler[0],
                                        
    'SPIELER2' => $spieler[1]);
            
    $tpl->parse_loop('main''spieler_array'); $x++;
            }
            
            
            
    $i++;
            }

    /** ENDE **/




    /******************************************* 
    ** BEGINN Ausgabe
    *****************************************************************************************************************/
            
            
            
    $tpl->register('header''title,css');
            
    $tpl->parse('header''title''urlcss');
            
            
            
            
    $tpl->parse_loop('main''row');
            
    $tpl->print_file('header, main, footer');
            
    /** ENDE **/
    Hat jemand eine Idee? Warum gibt er mir immer die Werte von der ersten Zeile der DB aus (E.S. und pimplegionaer)? Eigentlich sollte er doch immer die nächste Zeile nehmen?!
    Angehängte Dateien
    [SIZE=1]Projekte:
    wartower.de | planetd2.de

  • #2
    Re: Templates: Schleife in Schleife ?

    PHP-Code:
    <?php 

            
    include('includes/main.inc.php');
            include(
    'includes/template.inc.php');
            
    $tpl = new template;
            
    $tpl->load_file('header''templates/header.html');
            
    $tpl->load_file('main''templates/ausgabe.html');
            
    $tpl->load_file('footer''templates/footer.html');

                
    $title "WC3 Replay-Archiv";


    /******************************************* 
    ** BEGINN Bildung des Datenarrays 
    *****************************************************************************************************************/

            
    $res mysql_query("SELECT * FROM $sqlTable"
            or die(
    "Scheint ein Fehler vorzuliegen: ".mysql_error());
            
    $num mysql_num_rows($res);

            
    $i 0;
            while(
    $fetch mysql_fetch_array($res)) {

            if(
    $i 2){$td "td2";}
            else{
    $td "td1";}

            
            
    $row[] = array( 'MODUS' => $fetch['Modus'],
                            
    'SPIEL' => $fetch['Spiel'],
                            
    'DATUM' => $fetch['Datum'],
                            
    'MAP' => $fetch['Map'],
                            
    'DL' => $fetch['DL'],
                            
    'TD' => $td
            
    );
            
    $spieler explode("==="$fetch['Spieler']);
            
    $x=0;
            while(
    $x count($spieler)){
            
    $spieler_array[] = array(      'SPIELER1' => $spieler[0],
                                        
    'SPIELER2' => $spieler[1]);
            
    $tpl->parse_loop('main''spieler_array'); $x++;
            }
            
            
            
    $i++;
            }

    /** ENDE **/




    /******************************************* 
    ** BEGINN Ausgabe
    *****************************************************************************************************************/
            
            
            
    $tpl->register('header''title,css');
            
    $tpl->parse('header''title''urlcss');
            
            
            
            
    $tpl->parse_loop('main''row');
            
    $tpl->print_file('header, main, footer');
            
    /** ENDE **/
    versuch es mal so, sollte alles den selben effekt haben
    mfg

    Kommentar


    • #3
      Re: Re: Templates: Schleife in Schleife ?

      Original geschrieben von Trashar

      versuch es mal so, sollte alles den selben effekt haben
      mfg
      Am Code hat sich doch nichts geändert? Warum sollte es dann funktionieren?
      [SIZE=1]Projekte:
      wartower.de | planetd2.de

      Kommentar


      • #4
        na dann schau mal genau hin:

        while($fetch = mysql_fetch_array($res)) {

        gibs zb in deinem code nicht.. und das muss rein!

        OffTopic:
        wer lesen kann ist klar im vorteil

        Kommentar


        • #5
          Ne, zeigt immer noch in jeder Zeile das Selbe an E.S. und pimplegionaer.

          Wenn ich das "$tpl->parse_loop('main', 'spieler_array');" ausserhalb der Schleife lege, zeigt er für jede Zeile die Spielereinträge aller Zeilen. Ich hab echt no idea wie man das lösen kann.

          Also die Funktion loop_array funktioniert laut docu so:


          +---------- This is the row number, starting at zero.
          |
          | +--- This is the column name.
          | |
          | |
          $array[0]['SPIELER1'] Contains data Spielername1.
          $array[0]['SPIELER2'] Contains data Spielername2.
          $array[0]['SPIELER3'] Contains data Spielername3.

          $array[1]['SPIELER1'] Contains data Spielername1.
          $array[1]['SPIELER2'] Contains data Spielername2.
          $array[1]['SPIELER3'] Contains data Spielername3.


          Nur wie kann ich ihn dazu bringen nur die Spieler einer bestimmten Zeile auszugeben?
          [SIZE=1]Projekte:
          wartower.de | planetd2.de

          Kommentar

          Lädt...
          X