Verschachtelte Whileschleifen - mehrere Abfragen

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

  • Verschachtelte Whileschleifen - mehrere Abfragen

    Guten morgen allerseits!

    Ich bin immernoch an meinem Wettsystem für die WM und hänge gerade an der Ausrechnung der gewonnen/verlorenen Bets eines Users/aller User.

    Ich habe 3 Tabellen!

    1. Tbl: matches
    --------------------
    mid
    teamone
    teamtwo
    goalsone
    goalstwo
    datum
    gruppe
    close

    2. Tbl: user
    --------------
    uid
    username
    password
    bets ( Kontostand )

    3. Tbl: bets
    ----------------
    bid
    user (in diesem Feld immer $_SESSION['username'] bei abschicken der wette)
    matchid
    winner
    gewettet (wieviel er gesetzt hat)

    Das Problem: Ich muss ja mit allen 3 Tabellen agieren, da zuerst das match aufgerufen wird, dann müssen alle user welche auf das RICHTIG team gewettet haben abgerufen werden ( tbl bets ) - dann muss in der tbl.user der Kontostand geholt werden und davon "gewettet" von tbl.bets subtrahiert werden und das resultat dann wieder in die tbl.user->bets geschrieben werden. und das bei jedem user.

    Meine Frage: Ist es möglich innerhalb eines whiles ( hab ne abfrage für z.b. tbl.user gemacht ) nochma ne abfrage zu machen, und dann einfach die variable von einer whileschleife obendran zu brauchen?

    Oder wie könnte man das sonst lösen? :s

    Wäre nett wenn ihr mir auf die Sprünge helfen könntet.

    mfg

  • #2
    Re: Verschachtelte Whileschleifen - mehrere Abfragen

    Ich habe erst letzte Woche ein solches WP-Wettspiel für ein Forum fertig gestellt *fg*
    Und wenn ich mir so deine sachen ansehe würde ich dir erstmal raten das ein wenig anders zu handeln!

    Ich habe extra 1-2 tables mehr genommen für Daten damit die abfragen besser strukturiert werden können, ich poste dir später mal meinen db aufbau, vielleicht kannst du ihn ja übernehmen, da er wirklich vom aufbau her am besten ist.

    PS: ich habe noch ein quoten system eingebaut, was den Funfaktor erhöht


    Sers
    Der Boris

    Kommentar


    • #3
      cool ;9 demfall hats bei dir funktioniert xD

      Auch so wie ichs hab isses lösbar. Nur kannst du mir sagen wie du zwischen den tabellen geswitcht hast, da du ja auch wenn du mehr tabellen hast als ich, immer wieder was von anderen tbl's holen musst?

      Bitte hilf mir xD

      mfg

      Kommentar


      • #4
        So habe ich meinen db aufbau:
        PHP-Code:
        tableteams
        --------------------
        teamid
        team 
        // Team Name


        tablequoten
        -------------------
        quoteid
        gameid 
        // Die ID zu welchem Spiel die Quote zugeordnet wird
        //... wenn Mannschaft 1 gewinnt
        //... wenn es ein Unentschieden wird
        //... wenn Mannschaft 2 gewinnt


        tablegames
        -------------------
        gameid
        playtime 
        // Datum und Uhrzeit vom Spiel
        group // Die zugehörige Gruppe A,B, etc.
        team1 // Mannschaft 1
        team2 // Mannschaft 2
        result // Das Ergebnis zb. 1:3


        tablebets
        -------------------
        betid
        userid
        username
        gameid 
        // SpielID
        points // Die gesetzten Punkte (Arbeite im Forum mit dem uShop!
        bet // Stimme für Mannschaft 1 oder 2 oder gar Unentschieden 
        Somit habe ich die möglichkeit gewisse angaben aus der db besser auszugeben, vielleicht hilft dir das ja ein bisschen.

        Zu deinem problem, beschäftige dich mal mit LEFT JOIN und INNER JOIN in der Boardsuche hier und du wirst fündig wie man damit schnell und einfach mehrere abfragen in eine sql query quetscht.


        Sers
        Der Boris
        Zuletzt geändert von boris-schneider; 28.04.2006, 09:16.

        Kommentar


        • #5
          HJey, ist denn das nich auch so möglich:
          PHP-Code:
          $sql "SELECT * FROM user AS us, bets AS be, matches AS ma 
          WHERE ma.mid='"
          .$_GET['m']."' AND be.matchid='".$_GET['m']."' AND 
          be.winner='"
          .$winnerteam."'"
          ??

          EIGENTLICH sollte das ja gehn, oder net? xD

          Danach mach ich

          PHP-Code:
          $result=mysql_query($sql) OR die(mysql_error());
          while(
          $row mysql_fetch_assoc($result)) {
          echo 
          $row['us.username'];
          echo 
          $row['ma.teamone'];
          echo 
          $row['be.winner'];

          net?
          Zuletzt geändert von wkd-; 28.04.2006, 09:43.

          Kommentar


          • #6
            Kann mir keiner helfen? Ist da so wie ichs grad oben beschrieben hab net möglich?

            Gruss

            Kommentar


            • #7
              Boris hat dir doch geschrieben
              <<Zu deinem problem, beschäftige dich mal mit LEFT JOIN und INNER JOIN in der Boardsuche >>
              ausserdem wenn du mit mehreren tabellen arbeitest kannst du "*" nicht mehr benutzen, sondern felder mit komma getrennt auflisten.
              Slava
              bituniverse.com

              Kommentar

              Lädt...
              X