[Help] Search button

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
659
Reaction score
261
Здравейте! Искам да направя бутон за търсене на герои, като при въвеждането на името в търсачката да се ъпдейтва цялата долна част и да остава само името на героя който сме написали в търсачката.
Ето го и кога. Ще съм благодарен, ако някой помогне ^^
PHP:
<?php

include("configs/config.php");
include("mod/rankings/rank_menu.php");
$set = web_settings();

$pag  = (isset($_GET['page']) &&  $_GET['page'] > 0) ? (int)$_GET['page'] : 1;
$page  = (int)($pag);

   if($set[12] > 0 ){
        $selecta = $set[12] * $set[13];
         $count = mssql_num_rows(mssql_query("Select TOP ". $selecta ." * from Character where CtlCode= 0"));      
   }
   else{
         $count = mssql_num_rows(mssql_query("Select * from Character where CtlCode= 0"));   
   }
  
   $max_pages  = ceil($count/$set[13]);
   $offset     = ($set[13]) * ($page - 1);
   $select     = mssql_query(pagination($offset, $set[13], '[Name],[cLevel],[Class],[AccountID],[Resets],[MapNumber],[MarryName],[CtlCode],[IsMarried],[Money]', 'Character', 'resets desc, cLevel desc' ,'name','CtlCode = 0')); 
   pagi_style("topchars",$max_pages,$set[13]);
 
 
  $search_value=$_POST["Search"];
  $sql="select * from Character where Name like '$search_value'";

        $res=mssql_query($sql);
   
        while($row = mssql_fetch_array($res)){

            }   


?>

</table>
<table class='table'>
    <tbody>

// Тук е търсачката
    <form action="" method="post" >
    <td valign="middle" align="center" colspan="8" class="search">
  
<br>
Search Character <input maxlength="10" name="Search" value=""> <button class="searchinput" name="search" type="submit" value="Search button"> </button>
<br>
</form>


</td>
    <tr class="title">
        <td>#</td>
        <td>Name</td>
        <td>Class</td>
        <td>Level</td>
        <td>Resets</td>
        <td>Location</td>
        <td>Status</td>
    </tr>

<?php
if($stscheck=@fsockopen($set[5], $set[6], $ERROR_NO, $ERROR_STR, (float)0.5))
   {
       $status= "<img src='/themes/Legend/offline.png'>" ;$nadpis = "<font color='#99ff99'>Online</font>";
       fclose($stscheck);
   }
   else{
    $status= "<img src='/themes/Legend/images/offline.png'>" ;$nadpis = "<font color='#ff4c4d'>Offline</font>";  
   }
        $i = 0;
        while($row = mssql_fetch_array($select)):
            $i++;           
            $rank =$i+$offset;       
            $select_ip = mssql_fetch_array(mssql_query("Select * from [MEMB_STAT] where [memb___id] = '".$row['AccountID']."'"));
            $char_class = char_class($row['Class']);
        if(strtolower(geoip_country_code_by_addr(geo_data(), $select_ip['IP'])) <> NULL){
            $flags = "<img width='20px' height='15px'src='http://flags.fmcdn.net/data/flags/normal/". strtolower(geoip_country_code_by_addr(geo_data(), $select_ip['IP'])).".png'/> ";
        }
        else{
            $flags = "";
        }
    ?>
   
   
   

    <div class="ranktable">
    <tr>
        <td>
            <?php echo $rank; ?>
        </td>
        <td>
           
        <?php echo $flags ?>    <a class="rankname" href="?p=user&character=<?php echo $row['Name'] ?>"><?php echo $row['Name']; ?></a>
        </td>
        <td>
            <?php echo $char_class; ?>
        </td>
        <td>
            <?php echo $row['cLevel']; ?>
        </td>
        <td>
            <?php echo $row['Resets']; ?>
        </td>
        <td>
            <?php echo de_map($row['MapNumber']); ?>
        </td>
        </td>
        <td>
            <?php echo $status; ?>
        </td>
    </tr>
</div>
<?php endwhile;

echo "</table>";

pagi_style("topchars",$max_pages,$set[13]);


?>
 

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Я това модулче ми е познато, само че ти трябва ти малко динамика с JS не е до PHP-това което искаш. Може по-късно да се пробвам да подкарам тоя скрипт при мене и да го направим.
 
  • Like
Reactions: Wikko0

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
659
Reaction score
261
Я това модулче ми е познато, само че ти трябва ти малко динамика с JS не е до PHP-това което искаш. Може по-късно да се пробвам да подкарам тоя скрипт при мене и да го направим.
От твоя сайт е :D Ще съм ти много благодарен, ако помогнеш ^^
 

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Това не трябваше да го казваш, че като го гледам сега ме хваща срам. Нищо, тъкмо щя имам възможност да го пооправя.
 
  • Like
  • Haha
Reactions: Dea7h and Wikko0

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63

Видях, че си добавял във функцията de_map разни font-ove препоръчвам ти да не го правиш директно в тези функции, а в самите модули, че докато загрея, че кавичките ти там ми чупят скрипта изпих едно кафе.... :D.
 

Attachments

  • rank-characters.zip
    2.2 KB · Views: 7
  • Like
  • Love
Reactions: Wikko0 and Dea7h

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
659
Reaction score
261
Благодаря много за усилията!

Имам и още едно питане, защото вече 1 час го мъча, търся в нета и т.н и нищо не мога да направя :D Та питането ми е как по default да се подреждат героите по Resets после по Level и т.н
 

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Select * from Characters order by Resets desc, cLevel desc



Тук е подредено точно по този начин ->
PHP:
$select     = mssql_query(pagination($offset, $set[13], '[Name],[cLevel],[Class],[AccountID],[Resets],[MapNumber],[MarryName],[CtlCode],[IsMarried],[Money]', 'Character', 'resets desc, cLevel desc' ,'name','CtlCode = 0'));

'resets desc, cLevel desc' е пропъртито за подредба, и можеш да изреждаш колонките, които искаш да имат приоритет пред останалите
 
  • Love
Reactions: Wikko0

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Само да добавя, че моят съвет е, когато правиш заявки тествай си ги чисти (самостоятелни без друг програмен код) в query analyser, преди да се мъчиш да ги имплементираш в крайно решение, така ще намалиш вероятноста за грешка и спестиш главоболия.

В конкретният случай първо се убеди, че заявката ти работи преди да я мъчиш с PHP, това е препоръчително особенно ако не познаваш добре езика и си убеден във верността на кода. Аз съм си блъскал доста главата как да сложа последна тухла преди първата да е здрава така че ти го казам от горчив, но поучителен опит.
 
  • Love
Reactions: Wikko0

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
659
Reaction score
261
Така и стана, бая си поблъсках главата напразно. :D Проблема беше в SQL в Resets колоната. Май преди това беше varchar и сигурно от там беше проблема, сега я направих int и видях, че вече се редят нормално. Имаш една голяма бира от мен 🍻🍺
 
  • Like
Reactions: r00tme

r00tme

Member
Joined
Feb 4, 2021
Messages
73
Reaction score
63
Ще ударя една биричка за твое здраве , няма да я върна (xax). Иначе лексикографичната подредба не би трябвало да се променя от типа на колонката, то си го гледа по ASCII таблицата и числата пак би трбвало да си подредени по големина. Въпроса е че там има един друг момент с нежелани характери примерно празно място запетая ит.н дето могат да объркат подредбата, така че това че си го сменил на int е добре.

Пс. Само да вметна, че ако левъл колонката е била Int а resets варчар, то числата винаги са по-големи от буквите (имат приоритет) и това всъщност би могло да обясни факта че SQL преценява да сложи int колонка преди varchar независимо от подребата ти и съдържанието просто защото е int. Възможно е, трябва да се тества за да се докаже :D
 
Last edited:

Similar threads