[Help] Search button

Wikko0

Well-Known Member
Joined
Oct 17, 2012
Messages
660
Reaction score
263
Здравейте! Искам да направя бутон за търсене на герои, като при въвеждането на името в търсачката да се ъпдейтва цялата долна част и да остава само името на героя който сме написали в търсачката.
Ето го и кога. Ще съм благодарен, ако някой помогне ^^
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]);


?>
 
Я това модулче ми е познато, само че ти трябва ти малко динамика с JS не е до PHP-това което искаш. Може по-късно да се пробвам да подкарам тоя скрипт при мене и да го направим.
 
  • Like
Reactions: Wikko0
Я това модулче ми е познато, само че ти трябва ти малко динамика с JS не е до PHP-това което искаш. Може по-късно да се пробвам да подкарам тоя скрипт при мене и да го направим.
От твоя сайт е :D Ще съм ти много благодарен, ако помогнеш ^^
 
Това не трябваше да го казваш, че като го гледам сега ме хваща срам. Нищо, тъкмо щя имам възможност да го пооправя.
 
  • Like
  • Haha
Reactions: Dea7h and Wikko0

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

Attachments

  • rank-characters.zip
    2.2 KB · Views: 7
  • Like
  • Love
Reactions: Wikko0 and Dea7h
Благодаря много за усилията!

Имам и още едно питане, защото вече 1 час го мъча, търся в нета и т.н и нищо не мога да направя :D Та питането ми е как по default да се подреждат героите по Resets после по Level и т.н
 
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
Само да добавя, че моят съвет е, когато правиш заявки тествай си ги чисти (самостоятелни без друг програмен код) в query analyser, преди да се мъчиш да ги имплементираш в крайно решение, така ще намалиш вероятноста за грешка и спестиш главоболия.

В конкретният случай първо се убеди, че заявката ти работи преди да я мъчиш с PHP, това е препоръчително особенно ако не познаваш добре езика и си убеден във верността на кода. Аз съм си блъскал доста главата как да сложа последна тухла преди първата да е здрава така че ти го казам от горчив, но поучителен опит.
 
  • Love
Reactions: Wikko0
Така и стана, бая си поблъсках главата напразно. :D Проблема беше в SQL в Resets колоната. Май преди това беше varchar и сигурно от там беше проблема, сега я направих int и видях, че вече се редят нормално. Имаш една голяма бира от мен 🍻🍺
 
  • Like
Reactions: r00tme
Ще ударя една биричка за твое здраве , няма да я върна (xax). Иначе лексикографичната подредба не би трябвало да се променя от типа на колонката, то си го гледа по ASCII таблицата и числата пак би трбвало да си подредени по големина. Въпроса е че там има един друг момент с нежелани характери примерно празно място запетая ит.н дето могат да объркат подредбата, така че това че си го сменил на int е добре.

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

Similar threads