Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[PROBLEM]Skrypt ranking- wyświtlanie GM'ów


Rekomendowane odpowiedzi

Opublikowano

Witam serdecznie!

Otóż ma problem. Nasz ha zażądał, że nie mamy mieć prefiksów w grze i strona wyświetla w rankingu graczy GM'ów.

Poprawi mi ktoś ten skrypt? :

<?PHP

$CPSeite = 50;

$markierteZeile=0;

if(isset($_GET['p'])) {

if(!checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite = 1;

else $aSeite = $_GET['p'];

}

else { $aSeite = 1; }

 

 

$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);

 

?>

<h2>Ranking Graczy</h2>

 

<?PHP

$maxRange = 5;

$maxStep = 15;

if(($aSeite-$maxRange)>0) $sStart = $aSeite-$maxRange;

else $sStart = 1;

if(($aSeite+$maxRange)<=$cSeite[0]) $sEnde = $aSeite+$maxRange;

else $sEnde = $cSeite[0];

 

echo '<table >

<tr>

<td class="tdunkel">';

if(($aSeite-$maxStep)>0) echo '<a href="index.php?s=rankings&p='.($aSeite-$maxStep).'">'.($aSeite-$maxStep).'</a> ?';

else echo '<a href="index.php?s=rankings&p=1">1</a> ?';

echo'</td>';

 

for($i=$sStart;$i<=$sEnde;$i++) {

$sKlasse = ($i==$aSeite) ? "topLine" : "thell";

echo'<td class="'.$sKlasse.'" style="text-align:center;">';

echo'<a href="index.php?s=rankings&p='.$i.'">'.$i.'</a>';

echo'</td>';

}

 

echo'<td class="tdunkel" style="text-align:right;">';

if(($aSeite+$maxStep)<=$cSeite[0]) echo '? <a href="index.php?s=rankings&p='.($aSeite+$maxStep).'">'.($aSeite+$maxStep).'</a>';

else echo '? <a href="index.php?s=rankings&p='.$cSeite[0].'">'.$cSeite[0].'</a>';

echo'</td>';

echo'</table>';

?>

<table width="100%">

<tr>

<th class="topLine">Miejsce</th>

<th class="topLine">Nazwa</th>

<th class="topLine">Level</th>

<th class="topLine">Exp</th>

<th class="topLine">Gildia</th>

<th class="topLine">Imperium</th>

</tr>

<?PHP

$sqlCmd = "SELECT player.id,player.name,player.level,player.exp,player_index.empire,guild.name AS guild_name

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

LIMIT ".$cSeite[1].",".$CPSeite;

//echo $sqlCmd;

$sqlQry = mysql_query($sqlCmd,$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=\"#\" onclick=\"javascript:window.open('./postac.php?char=".$getPlayers->name."', '_blank','top=100, left=100, height=740, width=780, status=no, menubar=no, resizable=no, scrollbars=yes, toolbar=no, location=no, directories=no');\">".$getPlayers->name."</a></td></td>";

echo "<td class=\"$zF\">".$getPlayers->level."</td>";

echo "<td class=\"$zF\">".$getPlayers->exp."</td>";

echo "<td class=\"$zF\">".$getPlayers->guild_name."</td>";

echo "<td class=\"$zF\">";

if(!empty($getPlayers->empire)) {

echo '<img src="img/krol/'.$getPlayers->empire.'_kl.jpg" />';

}

echo "</td>";

echo "</tr>";

 

$x++;

 

}

?>

</table>

 

 

Chodzi mi konkretnie, aby nie wyświtlało tych nicków:

Xyli

Asti

CrazyDeep

NeVar

DiilOrDie

 

 

Daję za pomoc + !

Opublikowano


<?PHP
$CPSeite = 50;
$markierteZeile=0;
if(isset($_GET['p'])) {
if(!checkInt($_GET['p']) || !($_GET['p']>0)) $aSeite = 1;
else $aSeite = $_GET['p'];
}
else { $aSeite = 1; }


$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);

?>
<h2>Ranking Graczy</h2>

<?PHP
$maxRange = 5;
$maxStep = 15;
if(($aSeite-$maxRange)>0) $sStart = $aSeite-$maxRange;
else $sStart = 1;
if(($aSeite+$maxRange)<=$cSeite[0]) $sEnde = $aSeite+$maxRange;
else $sEnde = $cSeite[0];

echo '<table >
<tr>
<td class="tdunkel">';
if(($aSeite-$maxStep)>0) echo '<a href="index.php?s=rankings&p='.($aSeite-$maxStep).'">'.($aSeite-$maxStep).'</a> ?';
else echo '<a href="index.php?s=rankings&p=1">1</a> ?';
echo'</td>';

for($i=$sStart;$i<=$sEnde;$i++) {
$sKlasse = ($i==$aSeite) ? "topLine" : "thell";
echo'<td class="'.$sKlasse.'" style="text-align:center;">';
echo'<a href="index.php?s=rankings&p='.$i.'">'.$i.'</a>';
echo'</td>';
}

echo'<td class="tdunkel" style="text-align:right;">';
if(($aSeite+$maxStep)<=$cSeite[0]) echo '? <a href="index.php?s=rankings&p='.($aSeite+$maxStep).'">'.($aSeite+$maxStep).'</a>';
else echo '? <a href="index.php?s=rankings&p='.$cSeite[0].'">'.$cSeite[0].'</a>';
echo'</td>';
echo'</table>';
?>
<table width="100%">
<tr>
<th class="topLine">Miejsce</th>
<th class="topLine">Nazwa</th>
<th class="topLine">Level</th>
<th class="topLine">Exp</th>
<th class="topLine">Gildia</th>
<th class="topLine">Imperium</th>
</tr>
<?PHP
$sqlCmd = "SELECT player.id,player.name,player.level,player.exp,player_index.empire,guild.name AS guild_name
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!='Asti' AND  player.name!='Xyli' AND player.name!='CrazyDeep' AND player.name!='NeVar' AND player.name!='DillOrDie' AND account.status!='BLOCK'
ORDER BY player.level DESC, player.exp DESC
LIMIT ".$cSeite[1].",".$CPSeite;
//echo $sqlCmd;
$sqlQry = mysql_query($sqlCmd,$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=\"#\" onclick=\"javascript:window.open('./postac.php?char=".$getPlayers->name."', '_blank','top=100, left=100, height=740, width=780, status=no, menubar=no, resizable=no, scrollbars=yes, toolbar=no, location=no, directories=no');\">".$getPlayers->name."</a></td></td>";
echo "<td class=\"$zF\">".$getPlayers->level."</td>";
echo "<td class=\"$zF\">".$getPlayers->exp."</td>";
echo "<td class=\"$zF\">".$getPlayers->guild_name."</td>";
echo "<td class=\"$zF\">";
if(!empty($getPlayers->empire)) {
echo '<img src="img/krol/'.$getPlayers->empire.'_kl.jpg" />';
}
echo "</td>";
echo "</tr>";

$x++;

}
?>
</table>

 

Mała wskazówka dla Ciebie, tutaj jest mała dziura w skrypcie.

Załatajcie ją sobie.

Opublikowano

@Maliusek1

 

o mój Boże.. Zapytania na lajku + tak potężne sortowanie = ded dla serwera hehe.

 

Tu jest ogólnie jedna wielka dziura w tym skrypcie, wystarczy dopisać odpowiednie zapytanie w pasku adresu i serwer www jest obciążony + jeżeli nie ma ograniczeń co do ilość zapytań na minutę (a jest to ustawione domyślnie w my.cnf) to na dodatek cały serwer z bazą mysql jest obciążony, a nawet po pewnym czasie padnie.

Opublikowano

A poprawisz mi to, żeby nie wyświetlało GM'ów?

 

div class="box">

 

<h2>Top5 Graczy</h2>

<ul>

<?php

require_once("./inc/config.php");

 

 

 

if(isset($_GET['nr']) && $_GET['nr'] != '') { $nr1 = addslashes($_GET['nr'])-100; $nr = addslashes($_GET['nr']); $nr2 = addslashes($_GET['nr'])+100; } else { $nr1 = '-100'; $nr = '0'; $nr2 = '100'; }

 

@mysql_select_db("player");

$abfrage = "SELECT name, level FROM player WHERE name NOT LIKE '[%]%' ORDER BY level desc, exp desc limit $nr,5";

$ergebnis = @mysql_query($abfrage);

$i=$nr+1;

while($row = @mysql_fetch_array($ergebnis)) {

echo " <li >".$i.". ".$row['name']." [Lv.".$row['level']."]</li>";

 

 

$i++;

 

 

}

Opublikowano
<div class="box">

<h2>Top5 Graczy</h2>
<ul> 
<?php
require_once("./inc/config.php");



if(isset($_GET['nr']) && $_GET['nr'] != '') { $nr1 = addslashes($_GET['nr'])-100; $nr = addslashes($_GET['nr']); $nr2 = addslashes($_GET['nr'])+100; } else { $nr1 = '-100'; $nr = '0'; $nr2 = '100'; }

@mysql_select_db("player");
$abfrage = "SELECT name, level FROM player WHERE name!='Xyli' AND name!='CrazyDeep' AND name!='NeVar' AND name!='DillOrDie' ORDER BY level desc, exp desc limit $nr,5";
$ergebnis = @mysql_query($abfrage);
$i=$nr+1;
while($row = @mysql_fetch_array($ergebnis)) {
echo " <li >".$i.". ".$row['name']." [Lv.".$row['level']."]</li>";


$i++;


} 

Opublikowano

@up

Wystarczy dopisac

name != '[%]%' 

i juz nie widzi postaci z przydrostkami [as]..

Otóż założyciel tematu napisał że :

"Nasz ha zażądał, że nie mamy mieć prefiksów w grze i strona wyświetla w rankingu graczy GM'ów".

 

Więc w tym skrypcie co on podał jest już wykluczenie graczy z przedrostkami [], ale on chciał dla poszczególnych nicków, ponieważ jego HA usunął przedrostki teamowi.

Czytaj tematy od początku, bo się kiedyś zgubisz.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...