MYSQL meist eingetragener Datensatz auslesen

EddieG

Erfahrenes Mitglied
hi,
ich habe eine tabelle wo user angezeigt werden wenn man auf den user klickt werden details zu dem user ausgegeben

ich habe bis jetzt folgende ausgaben geshcaft
Nickname.
Siege.
Niederlagen.

Jetzt möchte ich die Map auslesen die der Spieler am meisten Gespielt hat

mein script schaut so aus
PHP:
<table width="100%" border="1">
<?php 
include("admin/mysql.inc.php");
?>
<?php 
$id = $_GET["id"];

$sql = mysql_query("SELECT nick FROM $ligascript WHERE id = $id GROUP BY nick ");
 while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;

    echo"<tr>
    <td>Nickname:</td>
    <td>&nbsp;</td>
    <td>$nick</td>
  </tr>";
}
?>
<?php 
$sql2 = mysql_query("SELECT * FROM $ligascript WHERE id = $id");
while ($ds = mysql_fetch_object($sql2)) 
{
 $wins = $ds->s;
 $loses = $ds->n;
 $gesamt = $wins + $loses;
 
  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>";
    
}
?>
<?php
$sql3 = mysql_query("SELECT map_name,COUNT(map_name) FROM $liga_stat WHERE id = $id GROUP BY map_name");
while ($ds = mysql_fetch_object($sql3)) 
{
 $map = $ds->map_name;

echo"<tr>
    <td>Meist gespielte Map:</td>
    <td>&nbsp;</td>
    <td>$map</td>";


}
?>

<?php
echo '<pre>';
print_r($_SESSION);
print_r($_POST);
print_r($_GET);
echo '</pre>';
?>
er zeigt mir aber gar nix in dem feld an.
ich hoffe ihr wisst was ich mein.
In die Spalte map_name wurden nameneingetragen udn der wo am meisten in der spalte vorkommt wo der user auch drinen ist soll angezeigt werden.
ich zeig eich mal wie eine zeile ausschaut.

id | spieler1 | spieler2 | torep1 | torep2 | report | datum | uhrzeit | winners_race
loser_race | map_name

1 | test | test2 | 1 | 0 | bla | bla | bla | p | t | LT

2 | test | test3 | 1 | 0 | blaa | blaa | | blaa | p | z | Gaia

3 | test2 | test | 1 | 0 | bla2 | bla2 | bla2 | p | p | LT

Ind er Spieler Tabelle werde die Spieeler aufgelistet klcke ich nun auf den namen test
werden dei daten ausgegeben
und es soll eben auch der map name ausgegeben werden von der amp die er am meisten gespielt hat in diesem fall wäre es LT da der Spieler lt zweimal gespielt hat udn gaia nur einmal ich hoffe ich habe es verständlich gemacht.

desweitern möchte ich die Siege auf jeder einzelnen map in % ausrechnen.
sagen wir mal es gibt die maps test1 test2 und test3
der Spieler gewint auf test1 jedes zweite Spiel auf der map test2 jedes Spiel udn auf der map test3 keins.
udn das eben in Prozent das würde dann z.B. so ausshen.
Winratio on this maps:
test1 = 50%
test2 = 100%
test3 = 0%
 
Zuletzt bearbeitet:
Hi,

das wird ohne PHP nicht zu machen sein ...
Also für alle gleichen map_namen des Spielers jeweils eine Variable hochzählen, die größte Zahl ist Dein gesuchtes Ergebnis.

Ich hätte das so gelöst:
-> neue Tabelle "map_played"
-> mpid (auto_increment), player, map, count

Wenn ein Spieler eine Map spielt, in dieser Tabelle einen Eintrag vornehmen. Dazu prüfen, ob player UND map schon existieren. Wenn ja, dann count=count+1, wenn nein, dann count=1.
So kannst Du dann auch sehr einfach auslesen welche map die größte Zahl hat.

Gruß tyg3r
 
Nur in Verbindung mit PHP.
PHP:
$played = array();
$sql3 = mysql_query("SELECT map_name FROM $liga_stat WHERE id = $id");
while ($ds = mysql_fetch_object($sql3)) {
    if(isset($played[$ds->map_name])){
        $played[$ds->map_name]++;
    }
    else{
        $played[$ds->map_name] = 1;
    } 
}

print_r($played);
exit;
 
also ich habs erst mal versucht mti einer neuen tabelle es wäre dann eh übersichtlicher.
aber er trägts nicht ein

PHP:
 $heim = $_POST['heim'];
 $auswaerts = $_POST['auswaerts'];
    $mapname = $_POST['mapname'];
 $mapcount = 1;

//MAP
  
  
  
 if ($theim > $tauswaerts){
  echo"Daten erfolgreich eingetragen!";
  $sql = mysql_query("SELECT * FROM map_played WHERE nick='$theim'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $count = $ds ->count;
  $map_name = $ds ->map_name;

  
}
//Berechnung der neuen Daten für den Heimspieler!
 $countn=$count +1;
 
  $query = "UPDATE map_played SET count=$countn WHERE nick = '$heim' AND map_name= '$mapname'";
  mysql_query($query);
 

 $sql = mysql_query("SELECT * FROM map_played WHERE nick='$auswaerts' AND map_name= '$mapname'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $n = $ds ->count;
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $nneu=$n +1;
 $query = "UPDATE map_played SET n=$nneu WHERE nick = '$auswaerts'";
 
 }

und das script ds du geposted hast um die tabelle anzusprechen un zu berechnen hat nicht wirklich geklappt ;)
 
Hi,

$heim = $_POST['heim'];
$auswaerts = $_POST['auswaerts'];

und:

if ($theim > $tauswaerts)

passen nicht wirklich zusammen :)
 
hm... aber ich muss doch irrgendwie den nick ebenfalls in ne zeile eintragen :=)
aber um auf dei script zurückzukommen es wurde immer array[]->1 angezeigt
ich hab dann versucht den namen via echo anzuzeigen aber hat net get
 
Aber die variablen-namen stimmen doch nicht :P

mach mal so:

PHP:
$theim = $_POST['heim'];
$tauswaerts = $_POST['auswaerts'];
 
doch die stimmen
das komplette script schaut so aus
PHP:
<?
//error_reporting(E_ALL);
 include("admin/mysql.inc.php");
 $punktesysten = $punktesystem;
 $heim = $_POST['heim'];
  $auswaerts = $_POST['auswaerts'];
  $mapname = $_POST['mapname'];
 $theim = 1;
 $tauswaerts = 0;
 $mapcount = 1;
 
 // Heimmanschaft gewinnt!
 
 if ($theim > $tauswaerts){
  echo"Daten erfolgreich eingetragen!";
  $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$heim'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $s = $ds ->s;
  $n = $ds ->n;
  
}
//Berechnung der neuen Daten für den Heimspieler!
 $toreneu=$tore + $theim;
 $gtoreneu=$gtore + $tauswaerts;
 $sneu=$s +1;
 $punkteneu=$punkte + $punktesystem;
 
 
  $query = "UPDATE $ligascript SET punkte = $punkteneu, tore=$toreneu, gtore=$gtoreneu, s=$sneu WHERE nick = '$heim'";
  mysql_query($query);
 

 $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$auswaerts'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $s = $ds ->s;
  $n = $ds ->n;
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $toreneu=$tore + $tauswaerts;
 $gtoreneu=$gtore + $theim;
 $nneu=$n +1;
 $punkteneu=$punkte - 1;  
 $query = "UPDATE $ligascript SET punkte = $punkteneu, tore=$toreneu, gtore=$gtoreneu, n=$nneu WHERE nick = '$auswaerts'";
 
 
}
  
  
  //MAP
  
  
  
 if ($theim > $tauswaerts){
  echo"Daten erfolgreich eingetragen!";
  $sql = mysql_query("SELECT * FROM map_played WHERE nick='$theim'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $count = $ds ->count;
  $map_name = $ds ->map_name;

  
}
//Berechnung der neuen Daten für den Heimspieler!
 $countn=$count +1;
 
  $query = "UPDATE map_played SET count=$countn WHERE nick = '$heim' AND map_name= '$mapname'";
  mysql_query($query);
 

 $sql = mysql_query("SELECT * FROM map_played WHERE nick='$auswaerts' AND map_name= '$mapname'")or die(mysql_error());
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $n = $ds ->count;
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $nneu=$n +1;
 $query = "UPDATE map_played SET n=$nneu WHERE nick = '$auswaerts'";
 
 }
  
  
  
  //MAPENDE
  
  
  
  //Auswärtsmanschaft gewinnt
 else if ($theim < $tauswaerts){
 
 echo"Daten erfolgreich eingetragen!";

 $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$auswaerts'");
 while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $s = $ds ->s;
  $n = $ds ->n;
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $toreneu=$tore + $tauswaerts;
 $gtoreneu=$gtore + $theim;
 $siegneu=$s +1;
 $punkteneu=$punkte + $punktesystem;
 $query = "UPDATE $ligascript SET punkte = $punkteneu, tore=$toreneu, gtore=$gtoreneu, s=$siegneu WHERE nick = '$auswaerts'";
 mysql_query($query);

//Berechnung der Daten des Heimspielers!XXXXXXXXXXXXXXXXXXXXXXXXXXX
  $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$heim'");
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $s = $ds ->s;
  $n = $ds ->n;
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $toreneu=$tore + $theim;
 $gtoreneu=$gtore + $tauswaerts;
$nneu=$n +1;
  $punkteneu=$punkte - 1;
  
 $query = "UPDATE $ligascript SET punkte = $punkteneu, tore=$toreneu, gtore=$gtoreneu, n=$nneu WHERE nick = '$heim'";
 
}
 //Unentschieden
 else {
 echo"Daten erfolgreich eingetragen!";
  $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$auswaerts'");
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $tore = $ds ->tore;
  $gtore = $ds ->gtore;
  $s = $ds ->s;
  $u = $ds ->u;
  $n = $ds ->n;
  
}
//Berechnung der neuen Daten für den Auswärtsspieler!
 $toreneu=$tore + $tauswaerts;
 $gtoreneu=$gtore + $theim;
 $uneu=$u +1;
 $punkteneu=$punkte - 1;
 
 
 
 $query = "UPDATE $ligascript SET punkte = $punkteneu, tore=$toreneu, gtore=$gtoreneu, u=$uneu WHERE nick = '$auswaerts'";
 $dummy = mysql_query($query);
 
 
 $sql = mysql_query("SELECT * FROM $ligascript WHERE nick='$heim'");
  while ($ds = mysql_fetch_object($sql)) 
{
  $nick = $ds ->nick;
  $punkte = $ds -> punkte;
  $tore = $ds ->tore;
  $gtore = $ds ->gtore;
  $s = $ds ->s;
  $u = $ds ->u;
  $n = $ds ->n;
}
//Berechnung der neuen Daten für den Heimspieler!
 $toreneu=$tore + $theim;
 $gtoreneu=$gtore + $tauswaerts;
 $uneu=$u +1;
 $punkteneu=$punkte - 1;
 
 
 $query = "UPDATE $ligascript SET punkte= $punkteneu, tore=$toreneu, gtore=$gtoreneu, u=$uneu WHERE nick = '$heim'";
 
 }
 $winners_race = $_POST['winners_race'];
  $map_name = $_POST['map_name'];
 $loser_race = $_POST['loser_race'];
 $report = $_POST['report'];
 $dummy = mysql_query($query);
 $datum = date("Y-m-d");
 $zeit = date("H:i:s");
 $query = "INSERT INTO $liga_stat SET spieler1 = '$heim', spieler2='$auswaerts', torep1=$theim, torep2=$tauswaerts, report='$report', datum='$datum', uhrzeit='$zeit', winners_race='$winners_race', loser_race='$loser_race', map_name='$map_name'";
  mysql_query($query);
   mysql_close($dz); 

?>
<input type="button" value="zurück" onClick="history.back()">
 
Zurück