php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.12.2007, 22:10  
Neuer Benutzer
 
Registriert seit: 17.12.2007
Beiträge: 6
Slappi befindet sich auf einem aufstrebenden Ast
Standard Berechnung über mehrere Abfragen aus mysql

Hallo zusammen

Ich knoble an einem kleineren Problem. Ich möchte gerne eine Spielerstatistik-Prognose einer Hockeymannschaft berechnen. Für jeden Spieler soll auf der Website in einer Tabelle angezeigt werden, wieviele Spiele, Tore, Punkte etc er bei Saison-Ende haben wird, wenn seine Leistung bleibt wie sie ist und er so häufig spielt, wie er es bislang getan hat.

Betroffen sind 2 mysql-Tabellen: die stats_player und die standings Tabelle. In beiden Tabellen sind die folgenden Spalten vorhanden:

SP = Anzahl gespielte Partien
T = Anzahl erzielte Tore
A = Anzahl Vorlagen
PKT = Anzahl Punkte

Hier die beiden Abfragen für die Daten aus mysql:

mysql_select_db($database_dbname, $dbname);
$query_stats_player = "SELECT * FROM `stats_player` ";
$stats_player = mysql_query($query_stats_player, $dbname) or die(mysql_error());
$row_stats_player = mysql_fetch_assoc($stats_player);
$totalRows_stats_player = mysql_num_rows($stats_player);

$query_standings = "SELECT * FROM standings";
$standings = mysql_query($query_standings, $dbname) or die(mysql_error());
$row_standings = mysql_fetch_assoc($standings);
$totalRows_standings = mysql_num_rows($standings);

Meine Berechnung hab ich mir nun so vorgestellt, dass ich den Leistungsfaktor berechne und diesen multipliziere mit der Zahl, welche sich aus der Differenz von den maximal 82 Spielen und den bereits erledigten Spielen (gespeichert in Standings, Spalte SP) ergibt.

$tendenz_sp = $row_stats_player['SP'] / $row_standings['SP'];
$offene_sp = 82 - $row_standings['SP'];
$max_sp_bei_tendenz_sp = $offene_sp * $tendenz_sp;
$prognose = $max_sp_bei_tendenz_sp + $row_stats_player['SP'];

schlussendlich soll in der tabelle die variable $prognose ausgegeben werden:

echo $prognose;

mein bespiel noch in zahlen:

das team hat bis jetzt 34 spiele ausgetragen. spieler xy hat davon 29 spiele mitgespielt.

$tendenz_sp : 29 / 34 = 0.85294118

jetzt wird berechnet, wieviele spiele von den total 82 noch auszutragen sind:

$offene_sp : 82 - 34 = 48

wenn unser spieler im gleichen verhältnis seine anzahl spiele austrägt (also nicht ganz jedes) so wird er bis ende saison noch die folgende anzahl spiele austragen:

$max_sp_bei_tendenz_sp : 48 * 0.85294118 = 40.9411765

und zum schluss noch die bereits ausgetragenen partien dazuzählen, damit die endprognose stimmt:

$prognose : 40.9411765 + 29 = 69.9411765

die zahl 70 (runden wir das ganze auf eine vernünftige zahl auf!) wird also schlussendlich in der tabelle als prognose eingetragen.

die gleiche berechnung kann jetzt für die spalte tore, vorlagen und punkte wiederholt werden.

-> das ganze funktionert aber nicht kann mir jemand sagen, wo das problem liegen könnte?

Vielen Dank für jede Hilfe!
Slappi ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.12.2007, 11:21  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

"Funktioniert nicht" ist keine vernünftige Fehlerbeschreibung. Es ist wirklich viel einfacher dir zu helfen wenn du genau sagst, was nicht geht, ob es Fehlermeldungen oder warnings gibt (error_reporting(E_ALL)), was das momentante Ergebnis und was das erwartete Ergebnis ist.

Außerdem ist mir noch nicht ganz klar was jeweils in den 2 Tabellen genau drin steht (sind standings die bereits gespielten Spiele und dort stehen die Daten der ganzen Mannschaft oder wie?).....

Im Prinzip ist das doch ganz einfach, und dein Ansatz passt imo auch...:
berechne wieviel Porzent der Spiele der Spieler bislang gespielt hat.
berechne wieviele tore der Spieler im Durchschnitt pro Spiel bisher geschossen hat, wieviele Vorlagen im Schnitt und wieviele Punkte...

Schaue nach wieviele Spiele es noch sind, multipliziere mit dem Prozentwert => Anzahl an noch ausstehenden Spielen. Jetzt kannst du einfach wieder mit den jeweiligen Durchschnittswerten multiplizieren.

(das ist eine [einfache] Möglichkeit, es gibt natürlich 1000ende Wege....)
agrajag ist offline  
Alt 18.12.2007, 14:22  
Neuer Benutzer
 
Registriert seit: 17.12.2007
Beiträge: 6
Slappi befindet sich auf einem aufstrebenden Ast
Standard

vielen dank agrajag für deine antwort.

aktueller stand: es wird mir bei der ausgabe keine fehlermeldung angezeigt. als resultat kommt die zahl 0. ich gehe davon aus, dass meine schreibweise nicht korrekt ist.

in table "standings" sind pro mannschaft die aktuellen daten zur tabellenlage gespeichert. also mannschafts-id, teamname, anzahl gespielte partien, anzahl siege, anzahl untentschieden, anzahl niederlagen, anzahl tore geschossen, anzahl tore erhalten, anzahl punkte.

in table "player-stats" sind die daten über die statistiken jedes spielers in dieser mannschaft. spieler-id, name, anzahl spiele, anzahl tore, anzahl vorlagen, anzahl strafen, anzahl punkte etc.

all diese daten hole ich mit der abfrage in eine data-row. könnt ihr vielleicht im speziellen auf die variablen und die berechnungs-schreibweise in meinem beispiel achten? kann ich solche berechnungen direkt ausführen und das resultat in eine neue variable speichern? gibt es ein problem, wenn die ausgabe ein assoc_fetch darstellt, also eine berechnung für jeden spieler in dieser mannschaft als ziel hat?

leider kann ich nicht viel mehr daten liefern, da ich keine fehlermeldungen erhalte.
Slappi ist offline  
 


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
Berechnung mit MySql Tabelleninhalt mittels php markbraue Datenbanken 4 16.05.2008 19:06
Mysql PHP Zahlenfeld aus DB abfragen? darkmana PHP Tipps 2008 10 12.10.2007 11:54
PHP bzw. mysql abfragen optimieren Kori Datenbanken 3 26.09.2007 21:02
Daten aus MySQL Datenbank abfragen trivial Datenbanken 2 29.04.2006 17:48
MySql abfragen durcheinander? MrCavity Datenbanken 19 16.11.2005 16:18
[Erledigt] Dynamische Ausgabe von Mysql Abfragen PHP-Fortgeschrittene 1 21.10.2005 10:53
[Erledigt] Jahr und Monat aus DATE spalte in MySQL abfragen. Datenbanken 7 24.09.2005 02:40
Suche Tipps für Persormance-Steigerung (Geld für Nützliches) Beitragsarchiv 18 16.08.2005 10:57
[Erledigt] MySQL Abfragen als Frage-Antwort Datenbanken 0 31.05.2005 18:35
info über mysql status abfragen nieselfriem Datenbanken 4 13.04.2005 09:42
between datum abfragen mysql hekto Datenbanken 2 12.01.2005 11:07
Password aus mySQL abfragen und vergleichen ob zu User passt PHP Tipps 2004 2 14.10.2004 10:15
Problem mit 2 gleichzeitigen MySQL abfragen PHP Tipps 2004 2 08.07.2004 13:57
Paradox, Fehler bei Berechnung in MySQL MrNiceGuy Datenbanken 0 23.06.2004 16:09
[Erledigt] MySQL DB Tabellen Kommentar abfragen Datenbanken 3 13.06.2004 22:41

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql durchschnitt berechnen, http://www.php.de/php-tipps-2008/354-berechnung-ueber-mehrere-abfragen-aus-mysql.html, mysql berechnungen, berechnungen mysql, durchschnitt berechnen mysql, mysql spieler mannschaft, mysql tabellen beitrag berechnen, mysql php durchschnitt, gleiche inhalte aus mehren tabellen zusammen rechen mysql php, mysql alle spalten berechnen, php mysql statistik der mannschaften, mysql punkte berechnen, mysql tagesdurchschnitt berechnen, datenbank spieler anzahl spiele und tore php, php durchschnitt berechnen, schnittmenge von abfragen mysql, mysql durchschnitt, mysql datenbank berechnungen, anzahl einträge datenbank berechnen, mysql, php, php mysql berechnung zwei tabellen

Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 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