• Hallo Besucher!

    Du bist neu im Forum? Dann registriere dich hier, um Diskussionen beizutreten oder eigene Themen zu erstellen. Für die Registrierung ist es erforderlich, dass du einen Spielaccount bei Die Stämme hast.

    Andernfalls kannst du dich hier direkt einloggen.

    Falls du dein Passwort vergessen hast, kannst du hier ein neues Passwort anfordern.

rangliste

DeletedUser

Gast
moin leute!

frohe ostern erstmal! nun zum "geschäft"... ich möchte für meinen stamm eine rangliste auf der homepage einrichten. die weltdaten liest das forum per cronjob stündlich aus, die habe ich also schon.

die rangliste soll mit einem errechneten wert erstellt werden:
punkte+(bash*2)=der wert
kann mir da jemand nen tipp geben?
 

TimLim

Gast
mach ne neue Tabelle, die die Rangliste ist. Dort fügst du per Cronjob die Werte ein, die du haben willst. Den Wert, wie du ihn genannt hast, bekommst du so:

PHP:
mysql_query("SELECT * FROM player WHERE ally='ALLYID'");
So die Ally Id noch ändern.

spontan würde ich es so machen, ka obs geht:
PHP:
<?
$query = mysql_query("SELECT * FROM player WHERE ally='ALLYID'") or die(mysql_error());
while($row = mysql_fetch_array($query)){
  $query_bash = mysql_query("SELECT kills FROM kill_all WHERE id='{$row['id']}'") or die(mysql_error());
  while($row = mysql_fetch_array($query_bash)){
    $points = $row['kills'];
  }
  $wert = $row['points']+$points*2;
  mysql_query("INSERT INTO rank (name, wert) VALUES ('{$row['name']}', '$wert')") or die(mysql_error());
}
?>

dann auslesen:

PHP:
<?
$query = mysql_query("SELECT * FROM rank ORDER BY wert DESC") or die(mysql_error());
?>
<table>
  <th>Rang</th><th>Name</th><th>Punkte</th>
<?
while($row = mysql_fetch_array($query)){
  $a++;
  echo '
  <tr>
    <td>'.$a.'</td>
    <td>'.$row['name'].'</td>
    <td>'.$row['wert'].'</td>
  </tr>'
}
?>
</table>
auch hierbei, nicht getestet, ka obs geht
 

DeletedUser94794

Gast
PHP:
<?
$query = mysql_query("SELECT * FROM player WHERE ally='ALLYID'") or die(mysql_error());
while($row = mysql_fetch_array($query)){
  $query_bash = mysql_query("SELECT kills FROM kill_all WHERE id='{$row['id']}'") or die(mysql_error());
  while($row = mysql_fetch_array($query_bash)){
    $points = $row['kills'];
  }
  $wert = $row['points']+$points*2;
  mysql_query("INSERT INTO rank (name, wert) VALUES ('{$row['name']}', '$wert')") or die(mysql_error());
}
?>

dann auslesen:

PHP:
<?
$query = mysql_query("SELECT * FROM rank ORDER BY wert DESC") or die(mysql_error());
?>
<table>
  <th>Rang</th><th>Name</th><th>Punkte</th>
<?
while($row = mysql_fetch_array($query)){
  $a++;
  echo '
  <tr>
    <td>'.$a.'</td>
    <td>'.$row['name'].'</td>
    <td>'.$row['wert'].'</td>
  </tr>'
}
?>
</table>


Des müsste eig. Gehn...
 

DeletedUser94794

Gast
@ TimLim, ausnahmsweise ma´n Brauchbarer Script von dir...
 

DeletedUser

Gast
danke (ich bin noch ein anfänger in phph und in mysql hab ich noch garnichts gemacht...)
 

DeletedUser

Gast
erklär mir das am besten mal^^

ich hab den ersten code in die unterseite des stammes eingebaut und dort einen link auf die 2. seite mit dem anderen code gesetzt. das ergebnis:
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /data/apache/users/kilu.de/w42low/www/w_rank.php on line 25
 

TimLim

Gast
line 25? un umliegende

pack mal noch rein:

PHP:
mysql_connect("localhost", "Benutzer", "Passwort");
mysql_select_db("DBNAME")
 

DeletedUser

Gast
jetzt ist der fehler schon vorher (ich hab die allyid noch ergänzt die hatte ich vorher nicht...) kannst dir das nochmal ansehen?

ach und was zum codieren wäre nicht schlecht - wegen dem pw...
 

TimLim

Gast
jetzt ist der fehler schon vorher (ich hab die allyid noch ergänzt die hatte ich vorher nicht...) kannst dir das nochmal ansehen?

ach und was zum codieren wäre nicht schlecht - wegen dem pw...

php wird nicht ausgegeben ;-), daher brauchst du nix codieren

unexpected Variable? guck mal in zeile 25, aob da ein Semikolon vergessen wurde
 

DeletedUser

Gast
ich meine auch nur, weil man sich den quelltext einer seite anzeigen lassen kann - zumindest in firefox.

hab ein semikolon ergänzt: "Table 'w42low@1-rank-w.player' doesn't exist" <- was könnte noch falsch sein?
 

TimLim

Gast
ich meine auch nur, weil man sich den quelltext einer seite anzeigen lassen kann - zumindest in firefox.
Das geht in jedem Browser, aber wie gesagt, php wird nicht geparst, glaub mir ruhig ^^

hab ein semikolon ergänzt: "Table 'w42low@1-rank-w.player' doesn't exist" <- was könnte noch falsch sein?

die Tabelle player existiert nicht. Wie heißt denn bei dir die Tabelle, mit den Weltdaten der Spieler?

und du solltest mir noch die Zeilen zeigen wegen dem unexpected }
\e:
hab den Fehler gefunden, jetzt wird mir klar, wie du das script zusammenstellst

PHP:
<?
$query = mysql_query("SELECT * FROM rank ORDER BY wert DESC") or die(mysql_error());
?>
<table>
  <th>Rang</th><th>Name</th><th>Punkte</th>
<?
while($row = mysql_fetch_array($query)){
  $a++;
  echo '
  <tr>
    <td>'.$a.'</td>
    <td>'.$row['name'].'</td>
    <td>'.$row['wert'].'</td>
  </tr>';
}
?>
</table>
 
Zuletzt bearbeitet:

DeletedUser

Gast
kensst du dsphpbb? da werden die daten glaube ich nur runtergeladen, sonst sind sie in "w42low@1-forum"... soll ich die einfach mal einfügen?
 

DeletedUser

Gast
Ich würde TimLim einfach den Code schicken, der erledigt das. ;-)
 

TimLim

Gast
Du solltest in der DB "1-rank-w" eine Tabelle haben, macht das erheblich einfacher, in der Hilfe ist auch ein Skript, welches die Weltdaten in die Tabelle schreibt.

da werden die daten glaube ich nur runtergeladen, sonst sind sie in "w42low@1-forum"... soll ich die einfach mal einfügen?
versteh ich nicht ^^
 

DeletedUser

Gast
kennst du DSphpBB?

EDIT: wo sollte ich den code aus der hilfe einfügen?
 
Zuletzt bearbeitet von einem Moderator:

TimLim

Gast
Was hat das jetzt damit zu tun?

ka, er solls per cronjob in die DB schreiben. Und nicht die zwei Teile die ich dort oben gepostet hab in ein Teil packen, denn dort fehlt TRUNCATE TABLE und das soll, wie ich geschriebebn hab, ebenfalls per cronejob, von mir aus jede Stunde, ausgeführt werden
 

DeletedUser

Gast
Wenn er den Code nicht postet, kann man auch nichts damit anfangen...
 

DeletedUser

Gast
der code steht hier schon in teilen... ich für den code mal ein.
 
Oben