Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Statistiken Berechnen“

rey

Der Frager ;)

hallo,
ich möchte die gewinnratio der siege mit 3 Verschiedenen rassen hinbekommen ;)
die db tabelle schaut so aus
hm.. mir is aufgefallen torep2 sind immer auf 0 gesetzt kann man es so machen das er zählt wie oft der nick vorkommt? in der spalte spieler2?
und dann eben so zusammen rechnen gesamt = torep1+anzahlnick
PHP-Code:
PHP:
<?php
$spieler = $_GET['nick'];
$sql6 = mysql_query("SELECT COUNT(*) AS spielername FROM $liga_stat WHERE spieler1 = $spieler And spieler2 = $spieler AND winners_race = 'p' AND loser_race='p'");
 while ($ds = mysql_fetch_object($sql2))
  {
 $gesamt = $ds->$spieler;
 
  echo"<tr>
    <td>Spiele Anzahl:</td>
    <td>&nbsp;</td>
    <td>$gesamt</td>
  </tr>
	";
}
?>
hier ein bsp.
ID|Spieler1|spieler2|toresp1|toresp2|datum|uhrzeit |winners_race|loser_race|map_name
1 | test | rey|1 |0 | 2007-09-26 |09:17:44| t|p| Luna
2 | rey| test|1 |0 | 2007-09-26 |09:18:44| z|t| Luna
3 | test| rey|1 |0 | 2007-09-26 |09:19:44| z|t| LT

die berechnung der winratio mit der rasse Protoss für rey wäre in dem beispiel 0%
und für Zerg(z) 100%
bei Terra ( t) 0%
die winratio Rechnung ist (siege/anzahl der spiele)*100


ich habs mit dem nick versucht aber es ist irgendwie falsch


wie gesagt ich muss Sagen er soll alle Spiele zusammen rechnen wo der Spieler die Rasse p hatte
also: er soll gucken wenn der Spieler name bei Spieler1 steht ob die rasse p war. wenn ja dann soll er die nehmen dann die nächste zeile angucken steht der Spielername wieder bei spieler1 dann soll er das addieren so ist es bsp. zeimal vorgekommen das es bei spieler 1 die winners_race = p war somit ist es 1+1=2
dann die nächste zeile steht der Spieler name nicht mehr in der splate spieler1 soll er die nächste zeile angucken also im prinzip die komplette spalte angucken ob dort der nick steht oder nicht wenn ja die spalte winners_race angucken und schauen ob in der Zeile ein p ist wenn ja eben zusammen addieren so habe ich schon mal alle Siege die er mit der rasse p erzeilt hat nun die Niederlagen bei den niederlagen steht der nick in der spalte spieler2 da wieder das selbe Schema er soll gucken ob in der spalte spieler2 der nick steht wenn ja in der spalte loser_race gucken ob dort die rasse p eingetragen wurde wenn ja in die nächste zeile gehen und gucken ob in der spalte spieler2 der nick steht und die rasse wieder p ist wenn ja haben wir 1+1=2
das heißt er hatte zwei niederlagern und zwei Siege mit der rasse jetzt rechnen wir das zusammen
also ist Gesamt= Siege+Niederlagen.

aber ich bekomme es einfach nicht hin
wäre jeder Hilfe sehr dankbar!
 

rey

Der Frager ;)

AW: Statistiken Berechnen

also ich wollte nochmal auf dieses Them hinweißen ;)
der jetzige stand ist das ich es himmernoch nicht hinbekommen habe da script schaut nun so aus

PHP:
<table width="100%" border="1">
<?php 
include("admin/mysql.inc.php");
?>
<?php 
$spieler = $_GET["nick"];

    echo"<tr>
    <td>Nickname:</td>
    <td>&nbsp;</td>
    <td>$spieler</td>
  </tr>";

?>
<?php 
$id = $_GET["id"];
$sql2 = mysql_query("SELECT * FROM $ligascript WHERE id = $id ");
while ($ds = mysql_fetch_object($sql2)) 
{
 $wins = $ds->s;
 $loses = $ds->n;
 $gesamt = $wins + $loses;
 $winratio = ($wins / $gesamt) *100;
 $winratioaus = number_format($winratio,2,".",",");  

 
  echo"<tr>
    <td>wins:</td>
    <td>&nbsp;</td>
    <td>$wins</td>
  </tr>
  <tr>
    <td>loses:</td>
    <td>&nbsp;</td>
    <td>$loses</td>
  </tr><tr>
    <td>Spiele Gesamt:</td>
    <td>&nbsp;</td>
    <td>$gesamt</td>
  </tr><tr>
    <td>winratio:</td>
    <td>&nbsp;</td>
    <td>$winratioaus %</td>
  </tr>
";
    
}
?>


   <?php
$spieler = $_GET['nick'];
$query = mysql_query("SELECT `map_name` FROM $liga_stat WHERE spieler1 = '".mysql_real_escape_string($spieler)."' OR spieler2 ='".mysql_real_escape_string($spieler)."'");
    while($fetch = mysql_fetch_array($query)) {
        if(isset($maps[$fetch['map_name']])) {
            $maps[$fetch['map_name']]++;
        }
        else {
            $maps[$fetch['map_name']] = 1;
        }
    }
    $most = 0;
    foreach($maps as $name => $viewed) {
        if($most <= $viewed) {
            $most = $viewed;
            $best_map = $name;
        }
    }
    echo "<tr>
    <td>Meist Gespielte Map:</td>
    <td>&nbsp;</td>
    <td>$best_map</td>
  </tr>";
?> 

 <?php
$spieler = $_GET['nick'];
$sql6 = mysql_query("SELECT SUM(CASE WHEN spieler1 = $id THEN torep1 ELSE torep2) FROM $liga_stat WHERE ((spieler1 = $id AND winners_race = 'p') OR (spieler2 = $id AND loser_race = 'p')) AND torep1 > torep2");
 while ($ds = mysql_fetch_object($sql2))
  {
 
  echo"<tr>
    <td>Spiele Anzahl:</td>
    <td>&nbsp;</td>
    <td>$sql6</td>
  </tr>
	";
}
?> 
<?php
echo '<pre>';
print_r($_SESSION);
print_r($_POST);
print_r($_GET);
echo '</pre>';
?>
</table>
 

Michael_Barsch

Noch nicht viel geschrieben

AW: Statistiken Berechnen

Ich hab zwar deine Scripte nur überflogen, aber wenn du etwas über mySQL zählen ( count() )oder summieren ( sum() )willst musst du doch "GROUP BY " benutzen, ansonsten weiß mySQL doch garnicht, wass du Zählen oder summieren möchtest.
 

Duddle

Posting-Frequenz: 14µHz

AW: Statistiken Berechnen

wenn du etwas über mySQL zählen ( count() )oder summieren ( sum() )willst musst du doch "GROUP BY " benutzen, ansonsten weiß mySQL doch garnicht, wass du Zählen oder summieren möchtest.

Nö. Die Funktion count(), wertet einfach die übergebenen Argumente in den Klammern aus (count(`schneeball`) zählt die Einträge der Spalte `schneeball`).



GROUP BY sind bei Aggregatfunktionen wie min(), max() oder dem genannten sum() angebracht, um (wie der Name schon sagt) die Ergebnisse sinnvoll zu gruppieren.


Duddle
 

Michael_Barsch

Noch nicht viel geschrieben

AW: Statistiken Berechnen

Nö. Die Funktion count(), wertet einfach die übergebenen Argumente in den Klammern aus (count(`schneeball`) zählt die Einträge der Spalte `schneeball`).



GROUP BY sind bei Aggregatfunktionen wie min(), max() oder dem genannten sum() angebracht, um (wie der Name schon sagt) die Ergebnisse sinnvoll zu gruppieren.


Duddle

Sorry hast Recht GROUP BY wird erst bei COUNT() benötigt, wenn man ausser COUNT() noch andere DB-Felder mit ausgeben möchte.
 

rey

Der Frager ;)

AW: Statistiken Berechnen

da dieses Thema wieder angesprochen wurde ich habs so versucht aber leider ohne Erfolg
PHP:
$spieler = $_GET['nick'];
$qryP= 'SELECT SUM(rasseg) AS summep FROM repasmuserstat WHERE gewinner = $spieler AND rasseg = "Protoss"';
$select = mysql_query($qryP);
$result = mysql_fetch_array($select);

echo 'Summe: '.$result['summep'];
 
Zuletzt bearbeitet:

rey

Der Frager ;)

AW: Statistiken Berechnen

1.) Nein es ist vchar
2.) nein habe ich nicht
3.) das etwas drinne ist weiß ich ja ;)
 

rey

Der Frager ;)

AW: Statistiken Berechnen

ich wollte nun in die Statistiken folgendes einbauen und zwar die Siege und Niederlagen mit den verschiedenen Team Partnern.
ist dies möglich?
wenn ja könne mir jemand vielleicht einen Ansatz punkt nennen. die sql Anweisung müsste ja so aussehen.
ich habe es so versucht allerdings gibt es mir keine Daten aus
PHP:
$spieler = $_GET['nick'];
//matchup Statistiken
$allystats_DB = mysql_query("SELECT * FROM 2n2repasmuserstat WHERE (gewinner1='".mysql_real_escape_string($spieler)."') OR  (gewinner1!='".mysql_real_escape_string($spieler)."') OR  (verlierer1='".mysql_real_escape_string($spieler)."') OR (verlierer1!='".mysql_real_escape_string($spieler)."'") ;
while ($DB_ally = mysql_fetch_object($allystats_DB )){
$gewinner1=$DB_ally->gewinner1;
$gewinner2=$DB_ally->gewinner2;
$verlierer1=$DB_ally->verlierer1;
$verlierer2=$DB_ally->verlierer2;
$team_partner_bei_g1 = mysql_query("SELECT COUNT(gewinner1) AS Teampartner_g_eins FROM 2n2repasmuserstat WHERE gewinner2='".mysql_real_escape_string($spieler)."'");
$team_partner_bei_g1Rechnung = mysql_fetch_array($team_partner_bei_g1);
$team_partner_bei_g1RechnungERG  = $team_partner_bei_g1Rechnung['Teampartner_g_eins'];

$team_partner_bei_g2 = mysql_query("SELECT COUNT(gewinner2) AS Teampartner_g_zwei, gewinner2 AS Teampartner_g_zwei_NAME FROM 2n2repasmuserstat WHERE gewinner1='".mysql_real_escape_string($spieler)."'");
$team_partner_bei_g2Rechnung = mysql_fetch_array($team_partner_bei_g2);
$team_partner_bei_g2RechnungERG  = $team_partner_bei_g2Rechnung['Teampartner_g_zwei'];
$team_partner_bei_g2RechnungERGN  = $team_partner_bei_g2Rechnung['Teampartner_g_zwei_NAME'];
//Niederlagen

$team_partner_bei_v1 = mysql_query("SELECT COUNT(verlierer1) AS Teampartner_v_eins FROM 2n2repasmuserstat WHERE verlierer1='".mysql_real_escape_string($spieler)."'");
$team_partner_bei_v1Rechnung = mysql_fetch_array($team_partner_bei_v1);
$team_partner_bei_v1RechnungERG  = $team_partner_bei_v1Rechnung['Teampartner_v_eins'];



$team_partner_bei_v2 = mysql_query("SELECT COUNT(verlierer2) AS Teampartner_v_zwei, verlierer2 AS Teampartner_v_zwei_NAME FROM 2n2repasmuserstat WHERE verlierer2='".mysql_real_escape_string($spieler)."'");
$team_partner_bei_v2Rechnung = mysql_fetch_array($team_partner_bei_v2);
$team_partner_bei_v2RechnungERG  = $team_partner_bei_v2Rechnung['Teampartner_v_zwei'];
$team_partner_bei_v2RechnungERGN  = $team_partner_bei_v2Rechnung['Teampartner_v_zwei_NAME'];

if($team_partner_bei_v2RechnungERG==0){
echo"<tr><td>".$team_partner_bei_g2RechnungERGN."</td><td> ". $team_partner_bei_g2RechnungERG."-".$team_partner_bei_v2RechnungERGN."</td><td> ". $winratioMUm. " %</td></tr>";
}elseif($team_partner_bei_v2RechnungERG>=1 && $team_partner_bei_g2RechnungERG==0){
echo"<tr><td>".$team_partner_bei_g2RechnungERGN."</td><td> ". $team_partner_bei_g2RechnungERG."-".$team_partner_bei_v2RechnungERGN."</td><td> ". $winratioMUm. " %</td></tr>";
}
else{
echo"<tr><td>".$team_partner_bei_g2RechnungERGN."</td><td> ". $team_partner_bei_g2RechnungERG."-".$team_partner_bei_v2RechnungERGN."</td><td> ". $winratioMUm. " %</td></tr>";
}
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Statistiken Berechnen

Hi,

habe momentan etwas wenig Zeit, werde also Sonntag mal einige Infos einfliessen lassen. Wie z.B. Ergebniss aus Query-Anfrage, welche sich als:
PHP:
<?php
// COUNT(*) zählt einfach durch
$con = mysql_query('SELECT COUNT(*) FROM tabelle');

// COUNT(spalte)
$con = mysql_query('SELECT COUNT(spalte) FROM tabelle WHERE spalte = 'bedingung'');

// Ergebnisaussgabe
$result = mysql_result( $con , 0 );

echo $result;

?>

Man muss also nicht alles in ein Array packen, um eine Zählfunktion oder Summierung auszugeben.

Das mal vorweg.
 

saila

Moderatorle

AW: Statistiken Berechnen

Ich hab zwar deine Scripte nur überflogen, aber wenn du etwas über mySQL zählen ( count() )oder summieren ( sum() )willst musst du doch "GROUP BY " benutzen, ansonsten weiß mySQL doch garnicht, wass du Zählen oder summieren möchtest.

GROUP BY ist nur ausschlaggebend, wenn du eine Bedingung an die Anfrage hängst und selbst dann nicht immer. Sprich - mit GROUP BY kann man lediglich das Ergebnis manipulieren bzw. spezifizieren.
 

rey

Der Frager ;)

AW: Statistiken Berechnen

ich meine mit Teamstats folgendes
Test1 hat mit TEST2 5 Spiele gemacht von 20
2 Niederlagen und 3 Siege.
Mit TEST16 hat er 10 Spiele gemacht und davon keins verloren.
Mit TEST4 waren es wieder 5 davon alle 5 verloren dann würde es so aussehen.

TEST2 : 3-2
TEST16: 10-0
TEST4: 0-5
 
Zuletzt bearbeitet:

saila

Moderatorle

AW: Statistiken Berechnen

1. Select der User
2. while - Schleife
3. innerhalb der while-schleife query-anfrage mit sum(gewinn) sum(verlor)
4. zuordnung für die ausgabe zum User

Das ist alles.
 

rey

Der Frager ;)

AW: Statistiken Berechnen

das ist leichter gesagt als getan naja ich versuche es noch ein mal so
1. Select ganze Tabelle ohne Bedingung
2.while schleife
3. In der while schleife mache ich ein selectbefehl mit Bedingung.
4.die Ausgabe ist der Spieler Namen
Also habe ich es so versucht für den Fall der der Spieler in der gewinner2 steht das es mir die namen wo der Spieler bla in der Spalte gewinner1 anzeigt.

das Problem später wird aber sein wenn der gleiche Name später in der Gewinner spalte erscheint wenn ich die Bedingung so mache select.... where gewinner1=$spieler ... Wenn dort wieder der selbe Name vorkommt wie vorhin in der spalte gewinner2 deshalb meine ich ja ist bissel tricky(darum denke ich auch ist so etwas überhaupt möglich ;))
 

saila

Moderatorle

AW: Statistiken Berechnen

Es kommt letztlich immer darauf an, wie du die SQL-Tabelle aufbauen wirst. Ein Beispiel:
PHP:
<?php

function siege( $userid ) {
    $res = mysql_query('SELECT 
                            userid,  
                            SUM(siege) 
                           FROM 
                               spiele_tabelle 
                           WHERE 
                               userid = '. $userid .' 
                           GROUP BY 
                               userid') or die ( mysql_error() );
    return mysql_result( $res , 0 );
}

function verloren( $userid ) {
    $res = mysql_query('SELECT 
                            userid,  
                            SUM(verloren) 
                           FROM 
                               spiele_tabelle 
                           WHERE 
                               userid = '. $userid .' 
                           GROUP BY 
                               userid') or die ( mysql_error() );
    return mysql_result( $res , 0 );
}

$result = mysql_query('SELECT 
                            id, 
                            username 
                          FROM 
                              usertabelle') or die ( 'Fehler Usertabelle: '. mysql_error() );

while( $row = mysql_fetch_array( $result ) ) {

    echo $row['username'] .' '. siege( $row['id'] ) .' - '. verloren( $row['id'] ) .'<br />';

}
?>
Bei dieser Form der Stat. wird im Grunde danach geprüft und das Ergebnis zurück gegeben, wieviel Siege und Verlorene Spiele der jeweilige User hat.
Das kann man natürlich noch anderweitig entweder zusammenfassen oder noch breiter aufbauen.
 

rey

Der Frager ;)

AW: Statistiken Berechnen

die Siege und Niederlagen des Spielers habe ich ausgerechnet.
Ich wollt nu jetzt noch die Siege und Niederlagen mit den Jeweiligen Teammates die er hatte ausrechnen.
wenn sein Teammate bla war dann die stats mit dem teammate bla wenn er noch ein teammate blabla hatte dazu auch die stats mit dem Spieler usw.
 
Zuletzt bearbeitet:

rey

Der Frager ;)

AW: Statistiken Berechnen

die tabelle users| userID; Spieler; Punkte; wins; lose
die tabelle Spiele| statID; gewinner1; gewinner2; mapname; replaypfad; Datum; dauer; SpielName; rasseg1; matchup; verlierer1; rassev1; rankingl; rankingw; rasseg2; rassev2; verlierer2
 

rey

Der Frager ;)

AW: Statistiken Berechnen

deshalb ist es ja so komplex ;)
ich muss ja irgendwie alle alle Möglichkeiten durch sql Anweisungen durch gehen
ich klicke ja auf Spieler dann werden mir in den playerdetails
die gesamten daten zu dem einen Spieler angezeigt.
Und um die allysats zu berechnen muss ich ja irgendwie in den sql Anweisungen sagen. where gewinner1=$spieler also kann der gewinner2 schon mal nicht der Spieler sein wo ich mir gerade die Details angucke. Dann wenn ich die ausgewählt habe zähle ich COUNT(gewinner2) AS bla where gewinner1=$spieler AND gewinner2=$Teammate1 je nach dem wie ich die gewinner2 spalt der while schleife benannt habe.
so dann haben wir schon mal die siege für den fall.
Dann muss ich gucken wo Gewinner 1 das teammate ist und gewinner2=$spieler ist, nun kann es ja sein das dass teammate wo vorhin in der spalte gewinner2 drinnen stand auch in der gewinner1 spalte vorkommt
und dann mache ich es wieder mit count um eine zahl zu bekommen und dann das ganze für die Niederlagen.

Aber ich weiß einfach nicht wie ich das anstellen soll es ist total tricky
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.158
Beiträge
2.581.872
Mitglieder
67.225
Neuestes Mitglied
Petra
Oben