Jetzt Mitglied werden

Kostenlos registrieren und die vielen Vorteile der Webmasterpro-Mitgliedschaft nutzen.

Login für Mitglieder

Forum - Entwicklung

Info: Der Stern signalisiert, dass neue Beiträge vorhanden sind.

Über Webmasterpro.de

Das Portal wird betrieben und entwickelt durch die Team23 Agentur. Die Augsbuger Agentur hat sich auf Community Software und die Entwicklung von Webportalen spezialisiert.

Datenbanken (SQL) - Forum

Derzeit sind Sie als Gast in unserem Forum aktiv. Für das Schreiben registrieren Sie sich bitte. Unser Forum ist eine Austauschplattform für Webworker zum Kommunizieren, Helfen, Informieren und Hilfe finden. Auf der rechten Seiten finden Sie eine Forenübersicht über alle Bereiche des Webmaster-Forums. Unterhalb finden Sie alle aktuellen Themen.

3 Tabellen zu einer ?!

Link zur Antwort auf "3 Tabellen zu einer ?!" von Christian Richter Christian Richter, am Montag den 07.03.2011 um 21:01:10

Hallo Liebe Com.

Ich schreibe grade ein Skript für eine Online Liga.

Nun habe ich folgende Tabellen: cup,cup_member & cup_games,user

In der Tabelle Cup sind folgende Spalten: cup_id, cup_name, date_from, date_to
Hier werden der Namen und das Datum von wann bis wann das Turnier geht gespeichert.

cup_member enthält folgende Spalten: cup_id & user_id
Das soll die Tabelle sein, wo sich die User einschreiben können, hinterher durch die Website.

cup_id bezieht sich auf tabelle => cup , die user_id bezieht sich auf die tabelle user
In der Tabelle user werden halt normale Userinformationen gespeichert mit Nickname.

In cup_games habe ich folgende Spalten: cup_game_id,cup_id,user_i,user_id2,score_home,score_away

Nun möchte ich wenn ich ein Spielanlege, das ich bei den user_id, die user_id aus der tabelle user eintragen kann, so das ich hinterher auf der Website mir die Namen ausgeben lassen kann wer gegen wen spielt.

Das mit der ersten user_id bekomme ich ja hin, aber nicht mit der zweiten.

Vielleicht hat ja jemand einen Rat für mich ;)

Gruß und Danke


David Danier
Beiträge: 1668

PN schreiben
Profil ansehen
User ist offline
Link zur Antwort auf "3 Tabellen zu einer ?!" von David Danier David Danier, am Donnerstag den 10.03.2011 um 10:53:52

Wie sieht denn dein Query bisher aus?

Link zur Antwort auf "3 Tabellen zu einer ?!" von Christian Richter Christian Richter, am Donnerstag den 10.03.2011 um 17:08:11

So sieht mein SQL Query aus:

 
sql
1
2
3
4
5
6
7
SELECT cup.cup_name, cup.cup_description, cup.date_from, cup.date_to, cg.cup_game_id, user.nickname, user2.nickname, cg.score_home, cg.score_away
                  FROM cup_games AS cg
                  INNER JOIN cup ON cg.cup_id = cup.cup_id
                  INNER JOIN user AS user2 ON cg.user_id2 = user2.user_id
                  INNER JOIN user ON cg.user_id = user.user_id
                  WHERE cup.publish = '1'
                  ORDER BY cup_game_id ASC

Und so frage ich das ganze per PHP ab:

 
PHP
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
<?php
while($games = mysql_fetch_assoc($cup_games_result)){
  if($x == 0){
   echo "Anzahl der Spiele im Cup: " . mysql_num_rows($games_count_result) . "<br \>";
   echo "<div>" . $games['cup_name'] . "</div>";
   $unixtime = strtotime($games['date_from']);
   $unixtime2 = strtotime($games['date_to']);
   echo "<div>" . date("d.m.y", $unixtime) . " - " . date("d.m.y", $unixtime2) . "</div><br \>";
  }
  echo "<div>";
  echo '<div>' . $games["nickname"] . ' - ' . $games["nickname"] . ' - ' . $games["score_home"] . ':' . $games["score_away"] .  '</div>';
  echo "<br \></div>";
  $x++;
}
mysql_close();
?>

Das klappt auch alles wunderbar, nur leider zeigt der mir nicht zweimal die Nicknamen an.

Name von User_ID 1 - Name von User_ID 1
Name von User_ID 2 - Name von User_ID 2
Name von User_ID 3 - Name von User_ID 3

und die Partien die ich angelegt habe lauten:

Cup_Game_ID 1:
User_ID = 1 - Nickname: Spieler1
User_ID2 = 2 - Nickname: Spieler2
Score_Home = 3
Score_Away = 0

Cup_Game_ID 2:
User_ID = 3 - Nickname: Spieler3
User_ID2 = 4 - Nickname: Spieler4
Score_Home = 2
Score_Away = 4

Irgendwie komisch das er das nicht ausgibt.

Die Ergebnisse passen, nur die Nicknames zu den Partien nicht.

Link zur Antwort auf "3 Tabellen zu einer ?!" von Christian Richter Christian Richter, am Donnerstag den 10.03.2011 um 19:39:33

Habe es selber gelöst.

Das problehm war, das Nickname zweimal benutzt wurde und somit fehlte es an der Beziehung zwischen den Namen.

Habe das SQL SELECT wie folgt angepasst:

 
sql
1
SELECT cup.cup_name, cup.cup_description, cup.date_from, cup.date_to, cg.cup_game_id, user.nickname, user2.nickname AS nick, cg.score_home, cg.score_away

Das war echt so einfach -.-