PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Verschachtelte Whileschleifen - mehrere Abfragen (https://www.php-resource.de/forum/php-developer-forum/69770-verschachtelte-whileschleifen-mehrere-abfragen.html)

wkd- 28-04-2006 09:53

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

boris-schneider 28-04-2006 10:01

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 :D


Sers
Der Boris

wkd- 28-04-2006 10:06

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

boris-schneider 28-04-2006 10:13

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

wkd- 28-04-2006 10:39

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?

wkd- 28-04-2006 11:27

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

Gruss

Slava 28-04-2006 19:45

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.


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:29 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG