PHP Homepage Ranking Script

01/31/2013 07:02 nostradame37#1
hallo com habe vergeblichst versucht das script umzuschreiben so das anstadt exp die online zeit abgelesen wird beckomme staendig i welche errors
hoffe es schreibt mir ein kenner kurz um so das das ranking von der online zeit
erstaelt wird und nicht laut dem exp
mfg
01/31/2013 07:18 .Shōgun#2
Here it is:

Code:
<?PHP
  $CPSeite = 25;
  $markierteZeile=0;
  if(isset($_GET['p'])) {
    if(!checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite = 1;
    else $aSeite = $_GET['p'];
  }
  else { $aSeite = 1; }
  
  if(isset($_POST['suche']) && $_POST['suche']=='Αναζήτηση') {
    if(!empty($_POST['charakter'])) {
      $sqlCmd="SELECT id, name, level, exp, empire, guild_name, rang
      FROM (
      
        SELECT id, name, level, exp, empire, guild_name, @num := @num +1 AS rang
        FROM (
        
          SELECT player.id, player.name, player.level, player.exp, player_index.empire, guild.name AS guild_name, @num :=0
          FROM player.player
          LEFT JOIN player.player_index ON player_index.id = player.account_id
          LEFT JOIN player.guild_member ON guild_member.pid = player.id
          LEFT JOIN player.guild ON guild.id = guild_member.guild_id
          INNER JOIN account.account ON account.id=player.account_id
          WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
          ORDER BY player.level DESC , player.exp DESC
          
        ) AS t1
        
      ) AS t2
      
      WHERE name = '".mysql_real_escape_string($_POST['charakter'])."' LIMIT 1";
      $sqlQry=mysql_query($sqlCmd,$sqlServ);
      if(mysql_num_rows($sqlQry)>0) {
      
        $getRang = mysql_fetch_object($sqlQry);
        $aSeite = ceil($getRang->rang/$CPSeite);
        $markierteZeile = $getRang->rang;
      }
      
    }
    
  }
  
  $sqlCmd = "SELECT COUNT(*) as summeChars  
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.exp DESC";
  
  $sqlQry = mysql_query($sqlCmd,$sqlServ);
  
  $getSum = mysql_fetch_object($sqlQry);
  $cSeite = calcPages($getSum->summeChars,$aSeite,$CPSeite);
  
?>
<div id="con-top">Κατάταξη χαρακτήρων</div>
<div id="con-mid">
<div class="center">

<form name="form">
<select name="link" SIZE="1" onChange="window.location.href = document.form.link.options[document.form.link.selectedIndex].value;">
<option selected value="#">Κατάταξη χαρακτήρων</option>
<option value="?s=ranking_gilden">Κατάταξη Συντεχνιών</option>
</select>
</form>

<br/>
<form action="?s=ranking_chars" method="POST">
      <b>Suche:</b>
      <input type="text" name="charakter" maxlength="20" size="20"  class="txt"/>
      <input type="submit" name="suche" value="Αναζήτηση" maxlength="20" size="20" class="button"/>
</form>
</div>

<table>
<tr>
  <th class="topLine">Βαθμ</th>
  <th class="topLine">Όνομα</th>
  <th class="topLine">Επίπεδο</th>
  <th class="topLine">EXP</th>
  <th class="topLine">Συντεχνία</th>
  <th class="topLine">Βασίλειο</th>
</tr>
<?PHP
  $sqlCmd = "SELECT player.id,player.name,player.level,player.playtime,player_index.empire,guild.name AS guild_name,guild.id AS guild_id 
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id 
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.playtime DESC 
  LIMIT ".$cSeite[1].",".$CPSeite;
  
  $sqlCmd2 = "SELECT player.name,player.account_id FROM player.player
    INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'";

  $sqlQry = mysql_query($sqlCmd,$sqlServ);
  $numrows = mysql_num_rows(mysql_query($sqlCmd2,$sqlServ));
  $x=$cSeite[1]+1;
  while($getPlayers = mysql_fetch_object($sqlQry)) {
    $zF = ($x%2==0) ? "thell" : "tdunkel";
    if(checkInt($markierteZeile) && $markierteZeile==$x) { $zF = "tmarkiert"; }
    echo "<tr>";
    echo "<td class=\"$zF\">".$x."</td>";
    echo "<td class=\"$zF\"><a href='index.php?s=char&char=".$getPlayers->name."'>".$getPlayers->name."</a></td>";
    echo "<td class=\"$zF\">".$getPlayers->level."</td>";
    echo "<td class=\"$zF\">".$getPlayers->playtime."</td>";
    echo "<td class=\"$zF\"><a href='index.php?s=guild&guild=".$getPlayers->guild_name."'>".$getPlayers->guild_name."</a></td>";
    echo "<td class=\"$zF\">";
    if(!empty($getPlayers->empire)) {
      echo '<img src="img/reiche/'.$getPlayers->empire.'_kl.jpg" title="Reich" alt="Reich"/>';
    }
    echo "</td>";
    echo "</tr>";
    
    $x++;
    
  }
?>
</table>
<div class="center">
<?PHP
  $maxRange = 4;
  $maxStep = 15;
  $totalpages = ceil($numrows/$CPSeite);
  if(($aSeite-$maxRange)>0) $sStart = $aSeite-$maxRange;
  else $sStart = 1;
  if(($aSeite+$maxRange)<=$cSeite[0]) $sEnde = $aSeite+$maxRange;
  else $sEnde = $cSeite[0];
  
  if(($aSeite)>1) echo '<span class="ranking2"><a href="index.php?s=ranking_chars&p=1">Erste</a></span> &laquo; ';
  
  
  for($i=$sStart;$i<=$sEnde;$i++) {
    $sKlasse = ($i==$aSeite) ? "ranking1" : "ranking2";
    echo'<span class="'.$sKlasse.'">';
    echo'<a href="index.php?s=ranking_chars&p='.$i.'">'.$i.'</a></span>';
  }
  
  if(($aSeite+$maxStep)<=$cSeite[0]) echo ' &raquo; <span class="ranking2"><a href="index.php?s=ranking_chars&p='.$totalpages.'">Letzte</span></a>';
?>
</div>
</div>
<div id="con-bot"></div>
01/31/2013 07:20 nostradame37#3
wow so schnell ? brobiere es gleich ma aus danke vorerst

Edit Da Wo EXP steht steht jetzt die online zeit
dank dir sehr
[Only registered and activated users can see links. Click Here To Register...]
01/31/2013 07:26 .Shōgun#4
Edit this line

Code:
<th class="topLine">EXP</th>
change it for

Code:
<th class="topLine">Playtime</th>
or the greek word for playtime :P
01/31/2013 07:31 nostradame37#5
I have chang it thanks you are great but the Player shaerc funktion not work now do you hafe any idea?
Edit
I hafe fix it thanks man
01/31/2013 07:47 .Shōgun#6
Might be a problem with the character encoding because a greek word is being used as POST variable, so try this:

Code:
<?PHP
  $CPSeite = 25;
  $markierteZeile=0;
  if(isset($_GET['p'])) {
    if(!checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite = 1;
    else $aSeite = $_GET['p'];
  }
  else { $aSeite = 1; }
  
  if(isset($_POST['suche']) && $_POST['suche']=='search') {
    if(!empty($_POST['charakter'])) {
      $sqlCmd="SELECT id, name, level, exp, empire, guild_name, rang
      FROM (
      
        SELECT id, name, level, exp, empire, guild_name, @num := @num +1 AS rang
        FROM (
        
          SELECT player.id, player.name, player.level, player.exp, player_index.empire, guild.name AS guild_name, @num :=0
          FROM player.player
          LEFT JOIN player.player_index ON player_index.id = player.account_id
          LEFT JOIN player.guild_member ON guild_member.pid = player.id
          LEFT JOIN player.guild ON guild.id = guild_member.guild_id
          INNER JOIN account.account ON account.id=player.account_id
          WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
          ORDER BY player.level DESC , player.exp DESC
          
        ) AS t1
        
      ) AS t2
      
      WHERE name = '".mysql_real_escape_string($_POST['charakter'])."' LIMIT 1";
      $sqlQry=mysql_query($sqlCmd,$sqlServ);
      if(mysql_num_rows($sqlQry)>0) {
      
        $getRang = mysql_fetch_object($sqlQry);
        $aSeite = ceil($getRang->rang/$CPSeite);
        $markierteZeile = $getRang->rang;
      }
      
    }
    
  }
  
  $sqlCmd = "SELECT COUNT(*) as summeChars  
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.exp DESC";
  
  $sqlQry = mysql_query($sqlCmd,$sqlServ);
  
  $getSum = mysql_fetch_object($sqlQry);
  $cSeite = calcPages($getSum->summeChars,$aSeite,$CPSeite);
  
?>
<div id="con-top">Κατάταξη χαρακτήρων</div>
<div id="con-mid">
<div class="center">

<form name="form">
<select name="link" SIZE="1" onChange="window.location.href = document.form.link.options[document.form.link.selectedIndex].value;">
<option selected value="#">Κατάταξη χαρακτήρων</option>
<option value="?s=ranking_gilden">Κατάταξη Συντεχνιών</option>
</select>
</form>

<br/>
<form action="?s=ranking_chars" method="POST">
      <b>Suche:</b>
      <input type="text" name="charakter" maxlength="20" size="20"  class="txt"/>
      <input type="submit" name="suche" value="search" maxlength="20" size="20" class="button"/>
</form>
</div>

<table>
<tr>
  <th class="topLine">Βαθμ</th>
  <th class="topLine">Όνομα</th>
  <th class="topLine">Επίπεδο</th>
  <th class="topLine">Playtime</th>
  <th class="topLine">Συντεχνία</th>
  <th class="topLine">Βασίλειο</th>
</tr>
<?PHP
  $sqlCmd = "SELECT player.id,player.name,player.level,player.playtime,player_index.empire,guild.name AS guild_name,guild.id AS guild_id 
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id 
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.playtime DESC 
  LIMIT ".$cSeite[1].",".$CPSeite;
  
  $sqlCmd2 = "SELECT player.name,player.account_id FROM player.player
    INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'";

  $sqlQry = mysql_query($sqlCmd,$sqlServ);
  $numrows = mysql_num_rows(mysql_query($sqlCmd2,$sqlServ));
  $x=$cSeite[1]+1;
  while($getPlayers = mysql_fetch_object($sqlQry)) {
    $zF = ($x%2==0) ? "thell" : "tdunkel";
    if(checkInt($markierteZeile) && $markierteZeile==$x) { $zF = "tmarkiert"; }
    echo "<tr>";
    echo "<td class=\"$zF\">".$x."</td>";
    echo "<td class=\"$zF\"><a href='index.php?s=char&char=".$getPlayers->name."'>".$getPlayers->name."</a></td>";
    echo "<td class=\"$zF\">".$getPlayers->level."</td>";
    echo "<td class=\"$zF\">".$getPlayers->playtime."</td>";
    echo "<td class=\"$zF\"><a href='index.php?s=guild&guild=".$getPlayers->guild_name."'>".$getPlayers->guild_name."</a></td>";
    echo "<td class=\"$zF\">";
    if(!empty($getPlayers->empire)) {
      echo '<img src="img/reiche/'.$getPlayers->empire.'_kl.jpg" title="Reich" alt="Reich"/>';
    }
    echo "</td>";
    echo "</tr>";
    
    $x++;
    
  }
?>
</table>
<div class="center">
<?PHP
  $maxRange = 4;
  $maxStep = 15;
  $totalpages = ceil($numrows/$CPSeite);
  if(($aSeite-$maxRange)>0) $sStart = $aSeite-$maxRange;
  else $sStart = 1;
  if(($aSeite+$maxRange)<=$cSeite[0]) $sEnde = $aSeite+$maxRange;
  else $sEnde = $cSeite[0];
  
  if(($aSeite)>1) echo '<span class="ranking2"><a href="index.php?s=ranking_chars&p=1">Erste</a></span> &laquo; ';
  
  
  for($i=$sStart;$i<=$sEnde;$i++) {
    $sKlasse = ($i==$aSeite) ? "ranking1" : "ranking2";
    echo'<span class="'.$sKlasse.'">';
    echo'<a href="index.php?s=ranking_chars&p='.$i.'">'.$i.'</a></span>';
  }
  
  if(($aSeite+$maxStep)<=$cSeite[0]) echo ' &raquo; <span class="ranking2"><a href="index.php?s=ranking_chars&p='.$totalpages.'">Letzte</span></a>';
?>
</div>
</div>
<div id="con-bot"></div>
Edit - oh, you solved it.Never mind then :P
01/31/2013 07:57 nostradame37#7
thanks i have fix it its working fine now there its the fixet PHP script

PHP Code:
<?PHP
  $CPSeite 
25;
  
$markierteZeile=0;
  if(isset(
$_GET['p'])) {
    if(!
checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite 1;
    else 
$aSeite $_GET['p'];
  }
  else { 
$aSeite 1; }
  
  if(isset(
$_POST['suche']) && $_POST['suche']=='Αναζήτηση') {
    if(!empty(
$_POST['charakter'])) {
      
$sqlCmd="SELECT id, name, level, playtime, empire, guild_name, rang
      FROM (
      
        SELECT id, name, level, playtime, empire, guild_name, @num := @num +1 AS rang
        FROM (
        
          SELECT player.id, player.name, player.level, player.playtime, player_index.empire, guild.name AS guild_name, @num :=0
          FROM player.player
          LEFT JOIN player.player_index ON player_index.id = player.account_id
          LEFT JOIN player.guild_member ON guild_member.pid = player.id
          LEFT JOIN player.guild ON guild.id = guild_member.guild_id
          INNER JOIN account.account ON account.id=player.account_id
          WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
          ORDER BY player.level DESC , player.playtime DESC
          
        ) AS t1
        
      ) AS t2
      
      WHERE name = '"
.mysql_real_escape_string($_POST['charakter'])."' LIMIT 1";
      
$sqlQry=mysql_query($sqlCmd,$sqlServ);
      if(
mysql_num_rows($sqlQry)>0) {
      
        
$getRang mysql_fetch_object($sqlQry);
        
$aSeite ceil($getRang->rang/$CPSeite);
        
$markierteZeile $getRang->rang;
      }
      
    }
    
  }
  
  
$sqlCmd "SELECT COUNT(*) as summeChars  
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.exp DESC"
;
  
  
$sqlQry mysql_query($sqlCmd,$sqlServ);
  
  
$getSum mysql_fetch_object($sqlQry);
  
$cSeite calcPages($getSum->summeChars,$aSeite,$CPSeite);
  
?>
<div id="con-top">Κατάταξη χαρακτήρων</div>
<div id="con-mid">
<div class="center">

<form name="form">
<select name="link" SIZE="1" onChange="window.location.href = document.form.link.options[document.form.link.selectedIndex].value;">
<option selected value="#">Κατάταξη χαρακτήρων</option>
<option value="?s=ranking_gilden">Κατάταξη Συντεχνιών</option>
</select>
</form>

<br/>
<form action="?s=ranking_chars" method="POST">
      <b>Suche:</b>
      <input type="text" name="charakter" maxlength="20" size="20"  class="txt"/>
      <input type="submit" name="suche" value="Αναζήτηση" maxlength="20" size="20" class="button"/>
</form>
</div>

<table>
<tr>
  <th class="topLine">Βαθμ</th>
  <th class="topLine">Όνομα</th>
  <th class="topLine">Επίπεδο</th>
  <th class="topLine">Χρόνος Online</th>
  <th class="topLine">Συντεχνία</th>
  <th class="topLine">Βασίλειο</th>
</tr>
<?PHP
  $sqlCmd 
"SELECT player.id,player.name,player.level,player.playtime,player_index.empire,guild.name AS guild_name,guild.id AS guild_id 
  FROM player.player 
  LEFT JOIN player.player_index 
  ON player_index.id=player.account_id 
  LEFT JOIN player.guild_member 
  ON guild_member.pid=player.id 
  LEFT JOIN player.guild 
  ON guild.id=guild_member.guild_id 
  INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'
  ORDER BY player.level DESC, player.playtime DESC 
  LIMIT "
.$cSeite[1].",".$CPSeite;
  
  
$sqlCmd2 "SELECT player.name,player.account_id FROM player.player
    INNER JOIN account.account 
  ON account.id=player.account_id
  WHERE player.name NOT LIKE '[%]%' AND account.status!='BLOCK'"
;

  
$sqlQry mysql_query($sqlCmd,$sqlServ);
  
$numrows mysql_num_rows(mysql_query($sqlCmd2,$sqlServ));
  
$x=$cSeite[1]+1;
  while(
$getPlayers mysql_fetch_object($sqlQry)) {
    
$zF = ($x%2==0) ? "thell" "tdunkel";
    if(
checkInt($markierteZeile) && $markierteZeile==$x) { $zF "tmarkiert"; }
    echo 
"<tr>";
    echo 
"<td class=\"$zF\">".$x."</td>";
    echo 
"<td class=\"$zF\"><a href='index.php?s=char&char=".$getPlayers->name."'>".$getPlayers->name."</a></td>";
    echo 
"<td class=\"$zF\">".$getPlayers->level."</td>";
    echo 
"<td class=\"$zF\">".$getPlayers->playtime."</td>";
    echo 
"<td class=\"$zF\"><a href='index.php?s=guild&guild=".$getPlayers->guild_name."'>".$getPlayers->guild_name."</a></td>";
    echo 
"<td class=\"$zF\">";
    if(!empty(
$getPlayers->empire)) {
      echo 
'<img src="img/reiche/'.$getPlayers->empire.'_kl.jpg" title="Reich" alt="Reich"/>';
    }
    echo 
"</td>";
    echo 
"</tr>";
    
    
$x++;
    
  }
?>
</table>
<div class="center">
<?PHP
  $maxRange 
4;
  
$maxStep 15;
  
$totalpages ceil($numrows/$CPSeite);
  if((
$aSeite-$maxRange)>0$sStart $aSeite-$maxRange;
  else 
$sStart 1;
  if((
$aSeite+$maxRange)<=$cSeite[0]) $sEnde $aSeite+$maxRange;
  else 
$sEnde $cSeite[0];
  
  if((
$aSeite)>1) echo '<span class="ranking2"><a href="index.php?s=ranking_chars&p=1">Erste</a></span> &laquo; ';
  
  
  for(
$i=$sStart;$i<=$sEnde;$i++) {
    
$sKlasse = ($i==$aSeite) ? "ranking1" "ranking2";
    echo
'<span class="'.$sKlasse.'">';
    echo
'<a href="index.php?s=ranking_chars&p='.$i.'">'.$i.'</a></span>';
  }
  
  if((
$aSeite+$maxStep)<=$cSeite[0]) echo ' &raquo; <span class="ranking2"><a href="index.php?s=ranking_chars&p='.$totalpages.'">Letzte</span></a>';
?>
</div>
</div>
<div id="con-bot"></div>
and there the working schaerc funktion

[Only registered and activated users can see links. Click Here To Register...]
01/31/2013 13:35 DexterSK#8
From Hen! cms. kids