• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Wertigkeiten von attributen

Status
Für weitere Antworten geschlossen.

R3van

Neues Mitglied
Ich habe folgendes Problem:

Ich soll eine Art Bundesliga für Gamer programmieren. Mir ist klar, dass es sowas bereits gibt aber dennoch...

Nun habe ich eine Relation team. In dieser Relation ist die team-id,der name des team, ob es ein premium account ist etc. verwaltet (sry bin gerade bei Freundin und habe die Datenbank nicht hier... sonst würde ich sie hier posten)

In einer zweiten Relation trage ich die Gewinne etc. ein...
Sie ungefähr so aus..

ergebniss-id,team1,team2,gewinner,bestätigt.

team1,team2,gewinner sind fremschlüssel aus der Relation team.

Es wird so laufen, dass der Gewinner(team1) eines Matches eine "Anfrage" seines Gewinnes in die Datenbank sendet. Das sieht dann von mir so aus.

team1 = 1,team2 = 2, Gewinner = 1, bestätigt = 0

Team2 kann dies nun bestätigen. dann wird bestätigt auf 1 gesezt.

Gibt es ein Unentschieden so wird bei Gewinner NULL eingetragen.
Ich bin jetzt leider etwas abgerutscht, aber ich will es so verständlich wie möglich machen.

Gewinne zählen 3 punkte unentschieden 1.
Ich will nun einen query an die Datenbank senden, der die Anzahl der Gewinne eines Team * 3 + die Anzahl der Unentschieden *1 und nun alle Teams nach Punkten sortiert. (1. Ganz oben, etc...).

Gibt es hier für eine Möglichkeit... ich bin leider was mysql angeht noch nicht so involviert. Lerne es gerade erst selbst...
Kennt ihr vlt. eine bessere Methodik eine Relation für Ergebnisse zu erstellen

Ich würde mich über Antworten freuen

mit freundlichen Grüßen
R3van
 
Ok im Prinzip ist das so wie ich mir das schonmal gedacht habe... Ich hol mir alle Teams mit ihren Siegen + Unentschiede raus, und multipliziere sie mit 3 bzw. 1.

Dafür bräuchte ich nichtmal ne Relation die beiden Werte kann ich ja einfach als Konstanten im PHP-Script deklarieren.

Nun gut ich hätte also später dann ein Arry das so ausehen könnte:
$array[$i][] = Im zweiten Schlüssel währe dann also das Team mit den dazugehörigen Punkten.

Dann müsste, ich hoffe das ist auch so umsetzbar, mittels eine array-sort-Funktion das Array nach Punktzahl sortieren lassen und dann ausgeben lassen.

Hoffe dieser Lösungsweg funktionert...

Ich hätte das halt alles gerne in einem Query gehabt. Währe so weniger umständlich.

Kennst du solch eine Möglichkeit .. oder nur diese??
 
Mit Array-Funktionen kenne ich mich so gut wie gar nicht aus, aber ich denke, wenn du Team => Punkte haben willst, musst du mit assoziativen Arrays arbeiten, dann ist aber die for-Schleife rein fürn Popo. Oder du definierst noch ein Array wo 1 => Name des Teams 1, 2 => Name des Teams 2 usw zugeordnet ist. Dann müsstest du praktisch nur mit 2 Arrays arbeiten:

PHP:
for ( ... )
{
echo $Team_Namen[$i]." hat ".$Team_Punkte[$i];
}
oder

PHP:
for ( ... )
{
echo $Team_Namen[$i]." hat ".$Gesamt;
}
Das Problem dabei ist die Feinabstimmung der Datenbankabfrage, da hier schonmal Verschiebungen entstehen können, wenn du zum Beispiel nur eine Mannschaft aber nicht ihre Punkte löschst.
 
Also mit assoziativen arrays müsste sich arbeiten lassen:

Code:
while($inhalt = $array)
{
  echo $inhalt."<br>";
  next($array);
}

dann ist das egal ob assoziativ oder nicht.

Aber ich weiß jetzt nicht genau was dein Vorschlag ist.. du willst zwei arrays erzeugen, mit team_name und team_punkte. und dann??
sry wenn ich gerade verwirrt sein sollte :)
 
:grin: Wenn du mit Assoziativen Arrays arbeitest, kannst du nich in einer for-Schleife mit $i++ arbeiten. Daher musst du die Indizes für Team=>Punkte gleichstellen.
 
Also ich konnte nochmal meinen Onkel fragen (ist mir gerade erst eingefallen... der macht datenbanken beruflich)

Es soll über einen qurey möglich sein. Leider weiß ich nicht mehr genau wie.. das war nicht ganz ohne.. aber er würde es ungefähr wie folgt machen

Er würde die anzahl der gewinne mit count(*) berechnen und diese mit 3 multiplizieren (er meint das würde gehen) dann wiederum alle unentschieden mit count(*) zusammenzählen.. und mit 1.. naja in dem Fall überflüssig.
Diese beiden subquerys würde er dann mit einander adieren.

Seiner Meinung nach müsste das Funktionieren... ich werde es mal testen und Bericht erstatten.

R3van
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben