Episoden Guid 2 Tabellen Abfragen und Anzeigen

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

  • Episoden Guid 2 Tabellen Abfragen und Anzeigen

    Ich möchte mir einen Episoden Guid für eine bestimmte TV -Serie erstellen. Es gibt ca. 400 Folgen und 32 Season.

    Dazu habe ich mir folgende Tabellen angelegt.

    Tab. 1 - Für die Serien Infos
    Code:
    # -------------------------------------------------------- 
    # 
    # Table structure for table 'epg_serie' 
    # 
    
    $sql[] = "    CREATE TABLE ". $table_prefix ."epg_serie ( 
                      serie_id int(8) UNSIGNED NOT NULL auto_increment, 
                   serie_title varchar(100),                
                   serie_desc text, 
                      PRIMARY KEY (serie_id) 
                   ) ";

    Tab. 2 - Für die Folgen Informationen

    Code:
    # -------------------------------------------------------- 
    # 
    # Table structure for table 'epg_folge_' 
    # 
    
          $sql[] = "    CREATE TABLE ".$table_prefix."epg_folge ( 
                   folge_lfnr mediumint(8) UNSIGNED NOT NULL auto_increment, 
                   serie_id int(8) NOT NULL default '1', 
                   season_id int(8) NOT NULL default '1', 
                   folge_id int(8) NOT NULL default '1',                    
                   folge_title varchar(75), 
                      folge_desc text, 
                   folge_img varchar(175), 
                     PRIMARY KEY (folge_lfnr) 
                   ) ";
    Ich habe eine Übersicht der Serien, wo der Benutzer eine Serie auswählen kann. Beim klick auf die Serie wird die serien id übergeben.

    Jetzt soll er mir für die ausgewählte Serie eine Übersicht der Season mit Anzahl der Folgen anzeigen, oder bei auswahl einer Season die einzelnen Folgen und die Informationen auflisten.

    Das Problem ist die richtige Abfrage der 2 Tabellen und das Anzeigen der Daten in einer phpBB Template.

    Vielleicht kann mir da jemand dabei helfen oder unterstützen?

    Mfg Matthias
    in der ruhe liegt die kraft

  • #2
    vielleicht kannst du dein problem auch definieren?

    Kommentar


    • #3
      Er soll mir eine Übersicht der Season anzeigen mit Anzahl der Folgen in der Season.

      Das Problem ist die Left Join Abfrage da Zeigt er mir nicht das Richtige Ergebniss an. Ich habe da schon verschiedene Version probiert.

      Im augenblick habe ich das so.

      PHP-Code:
      if($mode == "viewseason"){
          
          
      $serie $_REQUEST["id"];
          
          
      // Seasondaten holen    
          
      $result "    SELECT * FROM " EPG_FOLGEN_TABLE "    WHERE serie_id = ".$id."  ";

              if( !(
      $result $db->sql_query($result)) )
              {
                  
      message_die(GENERAL_ERROR"Could not query serien list"""__LINE____FILE__$sql);
              }                
                                      
              while( 
      $row $db->sql_fetchrow($result) )
              {
                  
      $serien_id $row['serie_id'];
                  
      $folge_title =  $row['folge_title'];
                  
      $season_id $row['season_id'];
                  
      $folgen_id $row['folge_id'];

              
      $template->assign_block_vars('season', array(        

                  
      // Serie
                  
      'SERIE_ID' => $serien_id,
                  
                  
      // Folge
                  
      'FOLGEN_TITLE' => $folge_title,
                  
      'FOLGEN_ID' => $folgen_id,
                  
                  
      // SEASON
                  
      'SEASON_ID' => $season_id,
              ));    
              
              }

          
      $template->assign_block_vars('menue', array(
                                      
              
      // Navigation Lexikon
                  
      'L_EPG_LEXIKON' => $lang['EPG_LEXIKON'],
                  
      'U_EPG_LEXIKON' => $link['EPG_LEXIKON'],
          
              
      // Navigation Lexikon
                  
      'L_EPG_TV' => $lang['EPG_TV'],
                  
      'U_EPG_TV' => $link['EPG_TV'],
          
              
      // Navigation Authoren
                  
      'L_EPG_AUTHOREN' => $lang['EPG_AUTHOREN'],
                  
      'U_EPG_AUTHOREN' => $link['EPG_AUTHOREN'],
          
              
      // Navigation Bio
                  
      'L_EPG_BIOGRAFIE' => $lang['EPG_BIOGRAFIE'],
                  
      'U_EPG_BIOGRAFIE' => $link['EPG_BIOGRAFIE'],
                      
              
      // Navigation Bio
                  
      'L_EPG_CHARACKTERE' => $lang['EPG_CHARACKTERE'],
                  
      'U_EPG_CHARACKTERE' => $link['EPG_CHARACKTERE'],
                      
          ));    
          
                                  

      Zuletzt geändert von maffy; 04.01.2006, 09:27.
      in der ruhe liegt die kraft

      Kommentar


      • #4
        Ich habe es jetzt soweit bekommen das er einen Datensatz anzeigt.

        Er soll mir aber alle Season und Folgen zu dieser Serie anzeigen.

        PHP-Code:
        if($mode == "viewseason"){
            
            
        $serie         $_REQUEST["id"];    

            
        $sql "SELECT c.*, p.*
                FROM "
        EPG_SERIE_TABLE ." AS c 
                LEFT JOIN "
        EPG_FOLGEN_TABLE ." AS p ON c.serie_id = p.serie_id
                WHERE c.serie_id = "
        .$serie."
                GROUP BY p.serie_id"
        ;
                
            if( !(
        $result $db->sql_query($sql)) )
            {
            
        message_die(GENERAL_ERROR'Could not query Serien information'''__LINE____FILE__$sql);
            }
                        
            while( 
        $row $db->sql_fetchrow($result) )
            {
                
        $folgen_id $row['folge_id'];
                
        $folgen_title $row['folge_title'];
                
        $folgen_desc $row['folge_desc'];
                
        $folgen_img $row['folge_img'];
                
                
        $season_id $row['season_id'];
                
                
        $serie_id $row['serie_id'];
                
        $serie_title $row['serie_title'];
                        
                
        $template->assign_block_vars('season', array(        
                
        'SERIE_TITLE' => $serie_title,
                
        'SEASON_ID' => $season_id,        
                
        'FOLGEN_ID' => $folgen_id,
                
        'FOLGEN_TITLE' => $folgen_title,
                ));
                        
            }
            
            
        $template->assign_block_vars('menue', array(
                                                                                    
                
        // Navigation Lexikon
                    
        'L_EPG_LEXIKON' => $lang['EPG_LEXIKON'],
                    
        'U_EPG_LEXIKON' => $link['EPG_LEXIKON'],
            
                
        // Navigation Lexikon
                    
        'L_EPG_TV' => $lang['EPG_TV'],
                    
        'U_EPG_TV' => $link['EPG_TV'],
            
                
        // Navigation Authoren
                    
        'L_EPG_AUTHOREN' => $lang['EPG_AUTHOREN'],
                    
        'U_EPG_AUTHOREN' => $link['EPG_AUTHOREN'],
            
                
        // Navigation Bio
                    
        'L_EPG_BIOGRAFIE' => $lang['EPG_BIOGRAFIE'],
                    
        'U_EPG_BIOGRAFIE' => $link['EPG_BIOGRAFIE'],
                        
                
        // Navigation Bio
                    
        'L_EPG_CHARACKTERE' => $lang['EPG_CHARACKTERE'],
                    
        'U_EPG_CHARACKTERE' => $link['EPG_CHARACKTERE'],
                        
            ));    
                                        

        So sieht das im Augenblick aus:



        Unter dem Serien Titel soll die SeasonID stehen und darunter die einzelnen Folgen zu der Season erscheinen.

        Und das für jede einzelne Season der ausgewählten Serie.
        Zuletzt geändert von maffy; 04.01.2006, 14:47.
        in der ruhe liegt die kraft

        Kommentar


        • #5
          Ich würde es mit zwei Queries machen. Ist denke ich sinnvoller, da du die serien-info ja eigentlich nur einmal brauchst.

          also 1)
          select * from serien
          where serienid=ID

          und 2)
          select * from folgen
          where serienid=ID
          order by season_id,folge_id

          (season_id ist die nummer der staffel?)


          Kannst mal versuchen die beiden zu joinen, ich denke aber, dass da kein performancegewinn zu holen ist, vorallem, wenn man sich die speicher"belastung" ansieht.

          hth (oder habe ich das ganze jetzt vollkommen falsch verstanden?)

          Kommentar


          • #6
            Der Aufbau der DB Tabellen ist so in Ordnung? Oder währe es besser für die Season (Staffel) eine eigene Tabelle zu erstellen.

            Mfg Maffy
            in der ruhe liegt die kraft

            Kommentar


            • #7
              wenn seasons nur nummeriert sind. dann keine extra tabelle. wenn die auch beschreibung o.ä. haben, normalisieren mit extra tabelle.

              Kommentar


              • #8
                Soweit Funktioniert das Script jetzt.

                Jetz habe ich noch ein Problem mit der Blätterfunktion.

                Das Problem ist jetzt noch eine Abfrage zu machen die Überprüft, ob es ein nöchste Staffel bzw. vorherige Staffel mit Daten in der ausgewählten Serie gibt.

                Wenn es keine nächste oder vorherige Staffel mit Daten gibt, soll er die Navigation Back bzw.Next nicht darstellen.

                Im Augenblick habe ich das so gemacht.

                PHP-Code:
                #
                # // Staffel Pagination


                    
                $next_staffel floor($staffel) + 1;
                       
                $back_staffel floor($staffel) - 1

                    if( 
                $back_staffel ){
                        
                $link_back append_sid('epiguid.'.$phpEx.'?mode='.$mode.'&serie='.$serie.'&staffel='.$back_staffel.'');
                        
                $nav_back_staffel ' Zurück zur Staffel '.$back_staffel.'  ';
                    }
                    
                    if( 
                $next_staffel ){
                        
                $link_next append_sid('epiguid.'.$phpEx.'?mode='.$mode.'&serie='.$serie.'&staffel='.$next_staffel.'');
                        
                $nav_next_staffel ' Weiter zur Staffel '.$next_staffel.' ';
                    }

                    
                $template->assign_block_vars('pagina', array(    
                        
                'L_NEXT_STAFFEL' => $link_next,
                        
                'NEXT_STAFFEL' => $nav_next_staffel,
                        
                        
                'L_BACK_STAFFEL' => $link_back,
                           
                'BACK_STAFFEL' => $nav_back_staffel,
                    )); 
                hier ist noch die Abfrag um die Daten der Folgen zu holen:
                PHP-Code:
                    $sql "SELECT serie_id, season_id, folge_title, folge_desc, folge_img
                               FROM " 
                EPG_FOLGEN_TABLE "
                               WHERE serie_id = "
                .$serie." AND season_id = ".$staffel."
                               ORDER BY folge_id"

                Mfg Maffy
                Zuletzt geändert von maffy; 09.01.2006, 17:40.
                in der ruhe liegt die kraft

                Kommentar


                • #9
                  Habe jetzt mal den Episoden Guid in meinem Forum eingerichtet.

                  Episoden Guid

                  Was noch fehlt sind Bilder und Beschreibungen der einzelnen Staffeln und Folgen.

                  MFG Maffy
                  in der ruhe liegt die kraft

                  Kommentar


                  • #10
                    OffTopic:
                    Ich habe die ganze Zeit überlegt, was ein Guid ist. Da fehlt dir wohl noch ein E am Ende, denn dann macht das Sinn.

                    Kommentar


                    • #11
                      OffTopic:
                      fies, wenn man jetzt das komplette script berichtigen muss

                      Kommentar


                      • #12
                        Ups, wenn das der einzige Schreibfehler war.

                        Da hab ich ja Glück gehabt , das ich mir gleich eine Languag Datei angelegt habe.

                        Werd ich gleich mal ändern.

                        Mfg Maffy
                        in der ruhe liegt die kraft

                        Kommentar

                        Lädt...
                        X