php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 11.04.2008, 16:21  
Benjamin Such
Gast
 
Beiträge: n/a
Standard Frage zu meinem JOIN Statement

Hallo,

Ich programmiere derzeit eine Liga und beschäftige mich seit dem das erste Mal mehr mit SQL da das doch sehr wichtig ist. Nun habe ich folgendes Problem:

Benutzer können Teams joinen (das ist soweit bewerkstelligt) nun will aber der Captain des Teams einer Liga beitreten. Diese Liga hat bestimmte Kriterien die erfüllt werden müssen, das wäre zum einen Kontaktmöglichkeiten, eine Mindestanzahl an Spielern und es müssen mindestens soviele ein gültigen Gameaccount haben wie die Mindestanzahl angibt.

Zur Verdeutlichung ein kleines Beispiel:

Team ABC (4 Spieler) will Liga 123 (Min. Spieler: 2, Gameaccount: Steam ID) joinen.

Hat nur ein Spieler einen gültigen Gameaccount -> Fehler
Haben mindestens zwei oder mehr Spieler einen gültigen Gameaccount -> OK

So nun hab ich aber das Problem das ja jeder Spieler einzeln überprüft werden muss. Ich habe schonmal in einem anderen Forum gefragt und die haben gesagt mach es mit einem JOIN. Hab mir daraufhin Tutorials durchgelesen und mit meinem PRoblem gestestet nur scheint es irgendwie nicht zu klappen.

Folgende Vorgänge müssen ja abgewickelt werden:

1. Es muss das richtige Team ausgewählt werden
2. Jeder einzelne Spieler muss auf einen Gameaccount hin überprüft werden.

Die Tabellen sehen wie folgt aus:

Tabelle `teams_access`:
Code:
id INT (11),
teamID INT (11),
userID INT (11),
owner INT (1),
captain INT (1),
manager INT (1),
player INT (1),
inactive INT (1)
Tabelle `user_gameaccounts` :
Code:
id (INT) (11),
userID (11),
accountID (11)
Tabelle `user`
Code:
userID INT (11),
Vorname....
......
....
So mein Versuch bisher:
PHP-Code:
$select=mysql_query("SELECT userID, accountID, teamID FROM teams_access INNER JOIN ON user (teams_access.userID = user.userID) OUTER JOIN ON user_gameaccounts (user_gameaccounts.userID = $userID, user_gameaccounts.accountID = $gameaccount) WHERE user.userID='$userID' AND user_gameaccounts.userID='$userID' and user_gameaccounts.accountID='$gameaccount'") or die(mysql_error()); 
Danke für jede Vernünftige Antwort

Gruß

Benjamin
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 11.04.2008, 18:58  
Benjamin Such
Gast
 
Beiträge: n/a
Standard

Hat keiner eine Idee?
  Mit Zitat antworten
Alt 11.04.2008, 23:04  
Benjamin Such
Gast
 
Beiträge: n/a
Standard

Danke für die Hilfe :X
  Mit Zitat antworten
Alt 12.04.2008, 06:56  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Hey Freitag abend, Zeit zum ausgehen, nicht Liga-Programmieren.

Ein JOIN ist hilfreich, aber doch nur Mittel zum Zweck. Schreib dir doch einfach 1-2-3 Klassen oder lass dir diese mit einem OR-Mapper aus deiner Datenbank generieren (QCodo, CakePHP, Propel, ..).

Nehmen wir an du hast also eine Liga:
PHP-Code:
<?php
$objLiga 
Liga::Load(1); // Liga mit ID 1 aus Datenbank laden
$objTeam Team::Load(1); // Team 1 aus Datenbank laden
if ($objLiga->AllowJoin($objTeam)) { // join im Sinne des englischen Begriffes, nicht des Datenbank Features
  
$objLiga->Join($objTeam);
}
?>
Deine AllowJoin() Methode koennte nun so aussehen:
PHP-Code:
<?php
public function AllowJoin(Team $objTeam) {
  
$intRequiredPlayers $this->CountRequiredPlayers();
  if (
$intRequiredPlayers $objTeam->CountPlayers()) {
    return 
false// Liga benoetigt mehr Spieler als das Team hat
  
}
  if (
$intRequiredPlayers $objTeam->CountGameAccounts()) {
    return 
false// Liga benoetigt mehr Game Accounts
  
}
  return 
true// alle Bedingungen erfuellt.
}
?>
Wenn du auf diese Art und Weise deine Probleme in Untermethoden auslagerst, geht eigentlich alles wie von selbst. Auf JOINs bist du nicht unbedingt angewiesen.
Zergling-new ist offline   Mit Zitat antworten
Alt 12.04.2008, 13:20  
Benjamin Such
Gast
 
Beiträge: n/a
Standard

Ok danke Ich werde mir deine Methode mal in Erwägung ziehen
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Mehrfach Join lazydog Datenbanken 2 08.05.2008 16:09
JOIN / LEFT JOIN und Co prinzli Datenbanken 12 05.11.2007 22:15
Frage wegen Join Verknüpfung Bruno Datenbanken 8 08.12.2006 11:17
SQL-Frage zum JOIN micbur Datenbanken 2 16.11.2006 23:46
Frage zur Vererbung 250Euro PHP-Fortgeschrittene 3 15.05.2006 08:53
inner join aus db PHP Tipps 2006 8 22.01.2006 01:23
Select Problem Datenbanken 17 16.01.2006 21:54
[Erledigt] Abfrageproblem mit Inner Join Datenbanken 15 29.11.2005 18:17
[Erledigt] Join Datenbanken 15 09.03.2005 08:44
[Erledigt] left outer join mit bedingung Datenbanken 2 04.03.2005 00:52
[Erledigt] frage zu select statement Datenbanken 4 21.12.2004 10:29
[Erledigt] Frage zur Funkrionen? PHP Tipps 2004-2 10 01.12.2004 09:42
[Erledigt] kleine inner join frage... PHP-Fortgeschrittene 3 02.11.2004 22:02
inner join Datenbanken 12 23.09.2004 13:22
[Erledigt] Relations Frage Datenbanken 6 09.09.2004 19:08

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
join statement, php outer join statement, propel join beispiele, propel join where bedingung, php.net public function join, join statements, php join statement beispiel, benjamin such, inner join statement, \benjamin such\, sql datenbank liga, propel join, ich hab das problemgameaccount_needed, mehrfaches left join

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.