In dem Highscore-Listen Thread machste einfach nen paar Queries, die erstmal alle Punkte vom User holen und dann zusammen rechnen. Wenn du aber jetzt verschiedene Punkteanzahlen bei den Gebäuden hast, wird es schon was schwieriger. Dann müsstest du ganz einfach eine Tabelle für die Gebäude erstellen, was aber jede Menge Platz wegnehmen würde.
Beispiel:
Tabelle Gebaeude -
UserID => INT => 10 => not null
Gebäude1 => INT => 10 => not null
...
Gebäude10 => INT => 10 => not null
Tabelle Gebaeude_Punkte
ID => INT => 10 => not null => auto_incremet => PRIMARY_KEY
Punkte => INT => 10 => not null
In der Tabelle Gebaeude ist kein PRIMARY_KEY vorhanden, da dort die Daten unabhängig von ihrer Reihenfolge gespeichert sind.
Nun müsste man ein Array per Datenbank-Abfrage erstellen, das die Anzahl der Gebäude eines Users enthält.
Danach holt man noch die Punkte für jedes Gebäude/Einheit usw. und rechnet die Gesamtpunktzahl aus, hier is mal so wie ich mir das in etwa vorstelle:
PHP:
<?php
$SQL1 = "SELECT * FROM gebaeude WHERE UserID='".$SESSION['UserID']."'";
$Result1 = mysql_query($SQL1) or die(mysql_error());
while ( $Gebilde = mysql_fetch_assoc($Result1) )
{
$User_Gebaeude[] = $Gebilde;
}
for ( $i = 1; $i <= count($User_Gebaeude); $i++ )
{
$SQL2 = "SELECT punkte FROM gebaeude_punkte WHERE ID='".$i."'";
$Result2 = mysql_query($SQL2);
while ( $Punkte = mysql_fetch_assoc($Result2) )
{
$User_Punkte[] = $Punkte * $User_Gebaeude[$i];
}
}
$Gesamt = 0;
for ( $o = 0; $o < count($User_Punkte); $o++ )
{
$Gesamt += $User_Punkte[$o];
}
?>
Wie du das dann noch nach der höchsten Punktzahl im Array sortierst, kannst du ja sicherlich selber schauen
