Abfrage aus mehren Tabellen und Ausgabe

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

  • Abfrage aus mehren Tabellen und Ausgabe

    Halli Hallo,

    ich hab mal ein paar fragen an ein paar schlaue leute.
    Und zwar bin ich gerade dabei mir ein Memberscript zu schreiben für Online Spiele generell.

    Allerdings stoße ich dabei auf ein Problem und zwar folgendes.

    Ich habe in der DB 3 Tabellen

    1. _members

    hier sind die Infos zu den Members gespeichert + 2 info felder gameid & squadid

    2. _members_game

    hier gibt es 3 felder: gameid, game_name, order
    erklären sich ja von der Bedeutung von fast allleine

    3. _members_squad

    und wieder 3 Felder squadid, squadname, gameid


    So nun soll das script folgendes machen: Eine äußer Tabelle erzeugen, welche die Game Tabelle ist und anzeigt welches Spiel es ist.
    Dann sollen in der Tabelle Game, weitere Tabellen erzeugt werden mit den Squads, in welche die entsprechenden Members kommen.

    Das ist der Code den ich bis jetzt geschrieben habe. Aber ich bin damit generell nicht zufrieden.
    Kann man nicht auch event die mySQL Abfrage etwas ändern? Oder muß ich jede DB-Tabelle immer einzeln abfragen?

    Danke für jede Hilfe,
    Gruß Jamie Wolf

    PHP-Code:
        function GameMain(){
            
    OpenTable();
            echo 
    "<form action=\"admin.php\" method=\"post\" name=\"addgame\" id=\"addgame\">"
                  
    ."<div align=\"center\">"
                
    ."<p>" _ADDGAMETEXT "</p>"
                
    ."<p>&nbsp;</p>"
                
    ."<table width=\"200\" border=\"0\">"
                  
    ."<tr>"
                
    ."<td>" _MEMBERS_GAMENAME "</td>"
                
    ."<td><input type=\"text\" name=\"gamename\"></td>"
                  
    ."</tr>"
                
    ."</table>"
                
    ."<p>"
                  
    ."<input name=\"op\" type=\"hidden\" id=\"op\" value=\"AddGame\">"
                  
    ."<input type=\"submit\" name=\"Submit\" value=" _SUBMIT ">"
                
    ."</p></div></form>";
            
    CloseTable();
            
    OpenTable();
            echo 
    "<table width=\"95%\"  border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
            
    $sql "SELECT * FROM {$GLOBALS['prefix']}_members_games";
            
    $datagame sql_query($sql);
            if (
    sql_num_rows($datagame) > 0){
                while (
    $game sql_fetch_array($datagame)){ 
                
    // Output Outer Table Game
                
    echo "<tr><td width=\"15\" bgcolor=\"$bgcolor2\">&nbsp;</td>"
                    
    ."<td width=\"*\" bgcolor=\"$bgcolor2\"><b>" $game['game_name'] . "</b></td></tr>";
                echo 
    "<table width=\"100%\"  border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
                
    $sql2 "SELECT * FROM {$GLOBALS['prefix']}_members_squads WHERE gameid='{$game['gameid']}'";
                
    $datasquad sql_query($sql2);
                    if (
    sql_num_rows($datasquad) > 0){
                        while (
    $squad sql_fetch_array($datasquad)){ 
                        
    // Output Outertable Squad
                        
    echo "<tr><td bgcolor=\"$bgcolor2\"><b>" $squad['squadname'] . "</b></td></tr><tr>";
                        
    $sql3 "SELECT * FROM {$GLOBALS['prefix']}_members WHERE squadid={$squad['squadid']} AND gameid='{$game['gameid']}'";
                        
    $datamember sql_query($sql3); 
                        
    // Player Table Begin
                    
    echo "<table width=\"100%\"  border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
                        if (
    sql_num_rows($datamember) > 0){ 
                            
    // Output Members
                            
    echo "<tr>"
                                
    ."<td width=\"6%\" align=\"center\" bgcolor=\"$bgcolor2\">&nbsp;</td>"
                                
    ."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>Nickname</b></td>"
                                
    ."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>Rank</b></td>"
                                
    ."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>Status</b></td>"
                                
    ."<td align=\"center\" bgcolor=\"$bgcolor2\"><b>etc</b></td>"
                                  
    ."</tr>";
                            while (
    $member sql_fetch_array($datamember)){
                                if (
    $member[status] == 0){
                                    
    $status "<font color=\"#C81111\">" _INAKTIV "</font>";
                                } elseif (
    $member[status] == 1){
                                    
    $status "<font color=\"#009900\">" _AKTIV "</font>";
                                } elseif (
    $member[status] == 2){
                                    
    $status "<font color=\"#CC9900\">" _SEMIAKTIV "</font>";
                                } 
                                echo 
    "<tr>
                                    <td><div align=\"center\"><img src=\"images/flags/" 
    $member[country] . ".gif\" width=\"18\" height=\"12\"></div></td>
                                    <td align=\"center\">" 
    $member[nickname] . "</td>
                                    <td align=\"center\">" 
    $member[jobs] . "</td>
                                    <td><div align=\"center\" class=\"Stil1\">" 
    $status "</div></td>
                                    <td>&nbsp;</td>
                                      </tr>"
    ;
                            } 
    // while
                        

                        else{
                            echo 
    "<tr><td align=\"center\"><b>No Members</b></td></tr>";
                        } 
                        echo 
    "</table>";
                                            } 
    // while
                    

                    else{
                        echo 
    "<tr><td align=\"center\"><b>No Squads</b></td></tr>";
                    } 
                    echo 
    "</table>";
                } 
    // while
            

            else{
                echo 
    "<tr><td align=\"center\"><b>No Games played</b></td></tr>";
            } 
            echo 
    "</table>";
            
    CloseTable();
            } 
    Nicht jeder der viele Posts hat weiß auch viel

  • #2
    Hey Ola Alte

    Ich bin zwar auch nur ein newbie, d.h. verlass dich nicht auf meinem rat. aber trotzdem ich weiss, dass

    SELECT * FROM tabelle1, tabelle2

    (also: "," zwischen den einzelnen tabellen)

    funktionniert. Ob dasselbe für das komische Klammerzeugs bei dir auch gilt weiss ich nicht. Versuchs einfach mal, würde mich auch interessieren... ob es je nachdem wie deine tabellenstruktur aussieht, mit der WHERE-bedingung probleme geben könnte weiss ich nicht. Ich hab bis anhin SELECT... FROM ...WHERE... immer nur dann gebraucht als ich die info. aus nur einer tabelle gebraucht habe...

    ...eben versuchs einfach mal, das resultat würde mich interessieren.

    Kommentar


    • #3
      Ich weiß, das kenn ich auch,

      sowas wie:
      PHP-Code:
      SELECT FROM _members m_members_squads setcpp
      Nur das problem dann ist, die daten sinnvoll zu sortieren und auszugeben. Daran scheiters gerade noch.
      Nicht jeder der viele Posts hat weiß auch viel

      Kommentar

      Lädt...
      X