ÇÖZÜLDÜ Usko Panel Clanprofil-ClanRanks Her Clana tıklamada Rank Birincisine Gönderme

goksu516

KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Server Sahibi
Katılım
26 Eyl 2021
Mesajlar
396
Konu Çözümleri
4
Tepki puanı
23
Puanları
48
Merhaba değerli forum üyeleri.

Clan sıralamasında herhangi bir clana tıkladığımda hep 1. Clanı gösteriyor.
Bunu nasıl düzeltebilirim?
Denemek için:

ClanRankings.php
PHP:
<?php
$pageTitle = "Klan Sıralaması";
?>
<title><?=$ServerName;?> ~ <?=$pageTitle;?></title>
<div id="cover"></div>
<link rel="stylesheet" type="text/css" href="<?=$path;?>css/sub.css" />
<section id="CNT">
<!-- [Start] Ranking Area -->
<article id="Guide">
<h2><?=$pageTitle;?> </h2>
<!--[Start]Race and Server Select Options-->
<div class="select_server">
<form name="serverForm" style="display: inline-block;">Sunucu:
    <select id="server" class="server" name="server">
        <option value="1" selected=""><?=$ServerName;?></option>
    </select>
    <span class="select_arrow"></span>
</form>
</div>
<div class="top_ranking unselected">
<?php
    $i = 0;
    $rank = "SELECT TOP 3 k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.ViceChief_1, k.ViceChief_2, k.ViceChief_3, SUM(u.Loyalty) FROM knights k, user_knightdata ku, userdata u WHERE k.IDNum = ku.sClanID AND ku.strUserID = u.strUserID GROUP BY k.Nation,k.IDNum,k.IDName,k.Members,k.Chief,k.ViceChief_1,k.ViceChief_2,k.ViceChief_3 ORDER BY SUM(u.Loyalty) DESC";
    $genel = $dbo->doquery($rank);
    while($dbo->row($genel)):
    $strUserID      = $dbo->result('IDName');
    $Loyalty      = $dbo->result(9);
    $i++;
?>
<dl class="top_ranking_no<?=$i;?>">
<dt><?=$strUserID;?></dt>
<dd>Puan: <?=number_format($Loyalty);?></dd>
</dl>
<?php endwhile;?>                       
</div>
    <!--[End]Race and Server Select Options-->
    <script>
    function onSelectChange(){
        document.getElementById('raceForm').submit();
    }
    </script>
 
    <!--[Start]Top Ranking No.1,2,3-->
    <table id="tableRanking" class="ranking">
        <thead>
            <tr>
                <th>#</th>
                <th>Klan Adı</th>
                <th>Klan Lideri</th>
                <th>Üyeler</th>
                <th>Puan</th>
                <th>Puan (Bağış)</th>
            </tr>
        </thead>
        <tbody>
        <?php
                $i = 0;
                /* top 100 clan*/
                $top100clan    = $dbo->doquery("SELECT TOP 100 k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund FROM knights k, userdata u WHERE k.Chief = u.strUserID GROUP BY k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund ORDER BY SUM(k.Points) DESC");
                while($dbo->row($top100clan)):
                $bagis = $dbo->result('ClanPointFund');
                $grades = $dbo->result('Points');
                $flag = $dbo->result('Flag');
                /*Training Grade*/
                if($grades <= 73999 and $dbo->result('Flag')< 3):
                    $grade = 5 ;
                elseif($grades <= 143999 and $dbo->result('Flag')< 3):
                    $grade = 4 ;
                elseif($grades <= 359000 and $dbo->result('Flag')< 3):
                    $grade = 3 ;
                elseif($grades <= 719999 and $dbo->result('Flag')< 3):
                    $grade = 2 ;
                elseif($grades >= 720000 and $dbo->result('Flag')< 3):
                    $grade = 1 ;
                /*Accredited Grade*/                   
                elseif($dbo->result('Flag') == 3):
                    $grade = 6 ;
                elseif($dbo->result('Flag') == 4):
                    $grade = 7 ;
                elseif($dbo->result('Flag') == 5):
                    $grade = 8 ;   
                elseif($dbo->result('Flag') == 6):
                    $grade = 9 ;
                elseif($dbo->result('Flag') == 7):
                    $grade = 10 ;
                /*Royal Grade*/
                elseif($dbo->result('Flag') == 8):
                    $grade = 11 ;
                elseif($dbo->result('Flag') == 9):
                    $grade = 12 ;
                elseif($dbo->result('Flag') == 10):
                    $grade = 13 ;
                elseif($dbo->result('Flag') == 11):
                    $grade = 14 ;
                elseif($dbo->result('Flag') == 12):
                    $grade = 15 ;                   
                endif;
                
                $nation  = $dbo->result('Nation');
                $clanname  = $dbo->result('IDName');
                $chief = $dbo->result('Chief');
                $members = $dbo->result('Members');
                
            ?>
        <tr>
            <td style="text-align:center;">#<?=$i;?> <span class="nation n<?=$nation;?>"></span><span class="grade g<?=$grade;?>"></span></td>
            <td><a href="<?=$base_url;?>ClanProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('IDName')));?>"><?=$clanname;?></a></td>
            <td><a href="<?=$base_url;?>UserProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('Chief')));?>"><?=$chief;?></a></td>
            <td><?=$members;?> / 50</td>
            <td><?=number_format($grades);?></td>
            <td><?=number_format($bagis);?></td>           
        </tr>
        <?php endwhile;?>
        </tbody>
    </table>

    <!--[End]Ranking list-->
</article>
<!-- [End] Ranking Area -->
</section>
 
Çözüm
Az bilgim var. Deneyeceğim bakalım. Tam olarak ne yapmam gerektiğini anlamadım
Clanprofile/clanadı

clanadı yazan yeri alıp üstte verdiğiniz kodta nereye müdahale etmem gerekiyor?

Kod:
$top100clan    = $dbo->doquery("SELECT * FROM knights WHERE IDName = 'clanadi' ");
$clanIDNum= $dbo->result('IDNum');

...
...
...
...

$clanuye = $dbo->doquery("SELECT strUserId,Level,Loyalty,Class,LoyaltyMonthly,Fame,Nation FROM USERDATA Where Knights = '".$clanIDNum."' order by fame ASC");



clanadi kısmını php bilgisi ile elde edip bu şekilde değiştirip dener misiniz?

samma1336

KY Üye
Katılım
30 Eyl 2021
Mesajlar
34
Tepki puanı
6
Puanları
38
Bu kodlarda bir hata gözükmüyor ClanProfile sayfasını kontrol etmeni öneriyorum orada bir hata olabilir zaten gönderilen idleri kontrol et clan adları üzerine gelince yönlendirilen idler farklı ise url'de sorun yoktur gittiği sayfada get fonksiyonunda bir hata vardır.
 

goksu516

KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Server Sahibi
Katılım
26 Eyl 2021
Mesajlar
396
Konu Çözümleri
4
Tepki puanı
23
Puanları
48
ClanProfile.php
Kontrol eder misiniz hocam?

PHP:
<?php
$pageTitle = "Klan Profili";
?>
<title><?=$ServerName;?> ~ <?=$pageTitle;?></title>
<?PHP
/**
 *    @author        :     Forathdor
 *     @copyright    :    2020
 **/
 if( !defined('FORATHDOR') ) {
    die("Erisim Engellendi! - <b>Forathdor</b>");
 }
 
 if($dbo->result('IDNum') != $id):
    $dbo->uyari('Aradığınız clan bulunamadı');
    $dbo->yonlendir(''.$base_url.'',0);
 else:
?>
<link rel="stylesheet" type="text/css" href="<?=$path;?>css/sub.css" />
<section id="CNT">
        <h2>Klan</h2>
<article id="ClanInfo">
    <?
    $top100clan    = $dbo->doquery("SELECT TOP 100 k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund FROM knights k, userdata u WHERE k.Chief = u.strUserID GROUP BY k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund ORDER BY SUM(k.Points) DESC");
    $nation  = $dbo->result('Nation');
    $clanname  = $dbo->result('IDName');
    $chief = $dbo->result('Chief');
    $members = $dbo->result('Members');
    $bagis = $dbo->result('ClanPointFund');
    $grades = $dbo->result('Points');
    $flag = $dbo->result('Flag');
    /*Training Grade*/
    if($grades <= 73999 and $dbo->result('Flag')< 3):
        $grade = 5 ;
    elseif($grades <= 143999 and $dbo->result('Flag')< 3):
        $grade = 4 ;
    elseif($grades <= 359000 and $dbo->result('Flag')< 3):
        $grade = 3 ;
    elseif($grades <= 719999 and $dbo->result('Flag')< 3):
        $grade = 2 ;
    elseif($grades >= 720000 and $dbo->result('Flag')< 3):
        $grade = 1 ;
    /*Accredited Grade*/                   
    elseif($dbo->result('Flag') == 3):
        $grade = 6 ;
    elseif($dbo->result('Flag') == 4):
        $grade = 7 ;
    elseif($dbo->result('Flag') == 5):
        $grade = 8 ;   
    elseif($dbo->result('Flag') == 6):
        $grade = 9 ;
    elseif($dbo->result('Flag') == 7):
        $grade = 10 ;
    /*Royal Grade*/
    elseif($dbo->result('Flag') == 8):
        $grade = 11 ;
    elseif($dbo->result('Flag') == 9):
        $grade = 12 ;
    elseif($dbo->result('Flag') == 10):
        $grade = 13 ;
    elseif($dbo->result('Flag') == 11):
        $grade = 14 ;
    elseif($dbo->result('Flag') == 12):
        $grade = 15 ;                   
    endif;
    ?>
    <div class="ClanGrade">
        <div class="wrapper">
            <div class="name"><?=$clanname;?></div>
            <div class="image"><img width="64" height="64" src="<?=$path;?>images/icon/nation<?=$nation;?>.png"></div>
            
        </div>
    </div>
    <div class="ClanDetails">
        <table class="Information">
            <tbody>
                <tr>
                    <td><span>Klan Lideri</span></td>
                    <td><span><a href="<?=$base_url;?>UserProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('Chief')));?>"><?=$chief;?></a></td>
                </tr>
                <tr>
                    <td><span>Sunucu</span></td>
                    <td><span><font color="yellow"><?=$ServerName;?></font></span></td>
                </tr>
                <tr>
                    <td><span>Klan Toplam NP</span></td>
                    <td><span><?=number_format($grades);?></span></td>
                </tr>
                <tr>
                    <td><span>Bağışlanan NP</span></td>
                    <td><span><?=number_format($bagis);?></span></td>
                </tr>
            </tbody>
        </table>
    </div>
</article>
<h3><font color="white">Üyeler</font></h3><font color="white">
<table>
    <tbody>
        <tr>
            <th>#</th>
            <th>Rütbe</th>
            <th>İsim</th>
            <th>Sınıf</th>
            <th>Seviye</th>
            <th>National Points</th>
        </tr>
        <?php
            $sira = 0;
            $i = 0;
            $clanuye = $dbo->doquery("Select strUserId,Level,Loyalty,Class,LoyaltyMonthly,Fame,Nation FROM USERDATA Where Knights in ('".$dbo->result('IDNum')."') order by fame ASC");
            while($dbo->row($clanuye)):
                $job = $dbo->result('Class');
                $level = $dbo->result('Level');
                $nation = $dbo->result('Nation');
                $loyalty = $dbo->result('Loyalty');
                $loyaltymonthly = $dbo->result('LoyaltyMonthly');
                switch($dbo->result('Fame'))
                {
                case 1:
                    $newrank = "<font color='white'>".$lang['lider']."</font>";
                    break;
                case 2:
                    $newrank = "<font color='yellow'>".$lang['asistan']."</font>";
                    break;
                default:
                    $newrank = "".$lang['uye']."";
                    break;
                }
                $sira++;       
        ?>
        <tr>
            <td class="center"><?=$sira;?></td>
            <td class="center"><?=$newrank;?></td>
            <td class="center"><a href="<?=$base_url;?>UserProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('strUserID')));?>"><?=$dbo->result('strUserID')?></a></td>
            <td class="center"><b class="nation n<?=$nation;?>"></b><b class="class c<?=$job;?>"></b></td>
            <td class="center"><?=$level;?></td>
            <td class="center"><?=number_format($loyalty);?></td>
        </tr>
        <?php endwhile;?>                                                                                               
    </tbody>   
</table>

    </font></section>
<?
endif;
?>
 

Alshain

KY Kıdemli Üye
Katılım
19 Ara 2022
Mesajlar
124
Konu Çözümleri
1
Tepki puanı
5
Puanları
28
ClanProfile.php
Kontrol eder misiniz hocam?

PHP:
<?php
$pageTitle = "Klan Profili";
?>
<title><?=$ServerName;?> ~ <?=$pageTitle;?></title>
<?PHP
/**
*    @author        :     Forathdor
*     @copyright    :    2020
**/
if( !defined('FORATHDOR') ) {
    die("Erisim Engellendi! - <b>Forathdor</b>");
}

if($dbo->result('IDNum') != $id):
    $dbo->uyari('Aradığınız clan bulunamadı');
    $dbo->yonlendir(''.$base_url.'',0);
else:
?>
<link rel="stylesheet" type="text/css" href="<?=$path;?>css/sub.css" />
<section id="CNT">
        <h2>Klan</h2>
<article id="ClanInfo">
    <?
    $top100clan    = $dbo->doquery("SELECT TOP 100 k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund FROM knights k, userdata u WHERE k.Chief = u.strUserID GROUP BY k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund ORDER BY SUM(k.Points) DESC");
    $nation  = $dbo->result('Nation');
    $clanname  = $dbo->result('IDName');
    $chief = $dbo->result('Chief');
    $members = $dbo->result('Members');
    $bagis = $dbo->result('ClanPointFund');
    $grades = $dbo->result('Points');
    $flag = $dbo->result('Flag');
    /*Training Grade*/
    if($grades <= 73999 and $dbo->result('Flag')< 3):
        $grade = 5 ;
    elseif($grades <= 143999 and $dbo->result('Flag')< 3):
        $grade = 4 ;
    elseif($grades <= 359000 and $dbo->result('Flag')< 3):
        $grade = 3 ;
    elseif($grades <= 719999 and $dbo->result('Flag')< 3):
        $grade = 2 ;
    elseif($grades >= 720000 and $dbo->result('Flag')< 3):
        $grade = 1 ;
    /*Accredited Grade*/                  
    elseif($dbo->result('Flag') == 3):
        $grade = 6 ;
    elseif($dbo->result('Flag') == 4):
        $grade = 7 ;
    elseif($dbo->result('Flag') == 5):
        $grade = 8 ;  
    elseif($dbo->result('Flag') == 6):
        $grade = 9 ;
    elseif($dbo->result('Flag') == 7):
        $grade = 10 ;
    /*Royal Grade*/
    elseif($dbo->result('Flag') == 8):
        $grade = 11 ;
    elseif($dbo->result('Flag') == 9):
        $grade = 12 ;
    elseif($dbo->result('Flag') == 10):
        $grade = 13 ;
    elseif($dbo->result('Flag') == 11):
        $grade = 14 ;
    elseif($dbo->result('Flag') == 12):
        $grade = 15 ;                  
    endif;
    ?>
    <div class="ClanGrade">
        <div class="wrapper">
            <div class="name"><?=$clanname;?></div>
            <div class="image"><img width="64" height="64" src="<?=$path;?>images/icon/nation<?=$nation;?>.png"></div>
           
        </div>
    </div>
    <div class="ClanDetails">
        <table class="Information">
            <tbody>
                <tr>
                    <td><span>Klan Lideri</span></td>
                    <td><span><a href="<?=$base_url;?>UserProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('Chief')));?>"><?=$chief;?></a></td>
                </tr>
                <tr>
                    <td><span>Sunucu</span></td>
                    <td><span><font color="yellow"><?=$ServerName;?></font></span></td>
                </tr>
                <tr>
                    <td><span>Klan Toplam NP</span></td>
                    <td><span><?=number_format($grades);?></span></td>
                </tr>
                <tr>
                    <td><span>Bağışlanan NP</span></td>
                    <td><span><?=number_format($bagis);?></span></td>
                </tr>
            </tbody>
        </table>
    </div>
</article>
<h3><font color="white">Üyeler</font></h3><font color="white">
<table>
    <tbody>
        <tr>
            <th>#</th>
            <th>Rütbe</th>
            <th>İsim</th>
            <th>Sınıf</th>
            <th>Seviye</th>
            <th>National Points</th>
        </tr>
        <?php
            $sira = 0;
            $i = 0;
            $clanuye = $dbo->doquery("Select strUserId,Level,Loyalty,Class,LoyaltyMonthly,Fame,Nation FROM USERDATA Where Knights in ('".$dbo->result('IDNum')."') order by fame ASC");
            while($dbo->row($clanuye)):
                $job = $dbo->result('Class');
                $level = $dbo->result('Level');
                $nation = $dbo->result('Nation');
                $loyalty = $dbo->result('Loyalty');
                $loyaltymonthly = $dbo->result('LoyaltyMonthly');
                switch($dbo->result('Fame'))
                {
                case 1:
                    $newrank = "<font color='white'>".$lang['lider']."</font>";
                    break;
                case 2:
                    $newrank = "<font color='yellow'>".$lang['asistan']."</font>";
                    break;
                default:
                    $newrank = "".$lang['uye']."";
                    break;
                }
                $sira++;      
        ?>
        <tr>
            <td class="center"><?=$sira;?></td>
            <td class="center"><?=$newrank;?></td>
            <td class="center"><a href="<?=$base_url;?>UserProfile/<?=trim(iconv('ISO-8859-9', 'UTF-8',$dbo->result('strUserID')));?>"><?=$dbo->result('strUserID')?></a></td>
            <td class="center"><b class="nation n<?=$nation;?>"></b><b class="class c<?=$job;?>"></b></td>
            <td class="center"><?=$level;?></td>
            <td class="center"><?=number_format($loyalty);?></td>
        </tr>
        <?php endwhile;?>                                                                                              
    </tbody>  
</table>

    </font></section>
<?
endif;
?>


Kod:
    $top100clan    = $dbo->doquery("SELECT TOP 100 k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund FROM knights k, userdata u WHERE k.Chief = u.strUserID GROUP BY k.Nation,k.IDNum, k.IDName, k.Members, k.Chief, k.Points, k.Flag ,k.ClanPointFund ORDER BY SUM(k.Points) DESC");

Burada top 100 clanı getirmesine gerek yok, bu bölümde path doğru gözüküyor.

PHP bilginiz varsa son "/" işaretinden sonra gelen clan ismini alıp yukarıda yazan kodda değişiklik yaparsanız sorununuz çözülür. Şuan pek vaktim yok, eğer yapamam derseniz müsait zamanda bilgisayarınıza bağlanıp yapabilirim.
 

goksu516

KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Server Sahibi
Katılım
26 Eyl 2021
Mesajlar
396
Konu Çözümleri
4
Tepki puanı
23
Puanları
48
Az bilgim var. Deneyeceğim bakalım. Tam olarak ne yapmam gerektiğini anlamadım
Clanprofile/clanadı

clanadı yazan yeri alıp üstte verdiğiniz kodta nereye müdahale etmem gerekiyor?
 

Alshain

KY Kıdemli Üye
Katılım
19 Ara 2022
Mesajlar
124
Konu Çözümleri
1
Tepki puanı
5
Puanları
28
Az bilgim var. Deneyeceğim bakalım. Tam olarak ne yapmam gerektiğini anlamadım
Clanprofile/clanadı

clanadı yazan yeri alıp üstte verdiğiniz kodta nereye müdahale etmem gerekiyor?

Kod:
$top100clan    = $dbo->doquery("SELECT * FROM knights WHERE IDName = 'clanadi' ");
$clanIDNum= $dbo->result('IDNum');

...
...
...
...

$clanuye = $dbo->doquery("SELECT strUserId,Level,Loyalty,Class,LoyaltyMonthly,Fame,Nation FROM USERDATA Where Knights = '".$clanIDNum."' order by fame ASC");



clanadi kısmını php bilgisi ile elde edip bu şekilde değiştirip dener misiniz?
 
Çözüm

DaTaTrx

Moderatör
KY YardımSever
Graphic Designer
Katılım
26 Mar 2023
Mesajlar
242
Konu Çözümleri
14
Tepki puanı
341
Puanları
73
functions.php içerisinde sorun var üstad veri çekerken sütun ısımlerı dogru degıl gibi gorunuyor .
 

goksu516

KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Server Sahibi
Katılım
26 Eyl 2021
Mesajlar
396
Konu Çözümleri
4
Tepki puanı
23
Puanları
48
@Alshain hallettim hocam sayenizde. Çok teşekkür ediyorum 😍
 

goksu516

KY Uzman Üye
KY Kıdemli Üye
KY YardımSever
Bağımlı Üye
Server Sahibi
Katılım
26 Eyl 2021
Mesajlar
396
Konu Çözümleri
4
Tepki puanı
23
Puanları
48
@DaTaTrx Yazdığınız zamanlarda yapmaya çalışıyordum sanırım o aralara denk geldiyseniz bir bozuyordum bir düzeltiyorum deneye deneye 😅
 
Reklam