2013-04-05 138 views
0

你好,我想問一個問題,現在我開始使用搜索引擎,所以你可以建議一些函數或方法如何開始或從數據庫用戶製作搜索引擎時使用什麼通過用戶名。它可以從另一個字的一個符號搜索,我寫'k',然後它搜索所有以用戶名'k'開頭的用戶名。 例子: http://postimg.org/image/sg84ny3w3/php搜索引擎暗示

嘗試:

private function Search() 
{ 
    global $database; 

    if(isset($_POST['s'])) { 
     if($_POST['s'] == '1' || $_POST['s'] == '2' || $_POST['s'] == '3') 
      $type = $_POST['s']; 
     $database->getSearchData($type, $_POST['xs']); 
     } 

    else if(!preg_match("/[^0-9A-Za-z]/", $_POST['xs'])){ 
     $error = "You entered invalid data"; 
     } 

     return false; 
} 

HTML:

<div id="content"> 
<div style="padding:20px"> 
<?echo $error;?> 
    <form action="index.php?mod=highscore&t=search" method="POST" accept-charset="utf-8"> 
    <div class="title_box"><div class="title_inner"> 
      What are you searching for?  </div></div> 
     <div class="title2_box"><div class="title2_inner"> 
     <p> 
      <table width="80%"> 
       <tr> 
        <td><input type="radio" name="s" value="1"></td> 
        <td>Player</td> 
       </tr> 
       <tr> 
        <td><input type="radio" name="s" value="2"></td> 
        <td>Guild (Name)</td> 
       </tr> 
       <tr> 
        <td><input type="radio" name="s" value="3"></td> 
        <td>Guild (Guild Tag)</td> 
       </tr> 
       <tr> 
        <td>Text:</td> 
        <td colspan="2"><input type="text" name="xs" size="30" maxlength="30" value=""></td> 
       </tr> 
       <tr> 
        <td colspan="3"><input type="submit" value="Search" class="button3" name="search"></td> 
       </tr> 
      </table> 
     </p> 
    </form> 
     </div></div> 
<br /> 
<?if($functions->Search() == false) {?> 
    <div class="title_box"><div class="title_inner"> 
     Results </div></div> 
    <div class="title2_box"><div class="title2_inner"> 
    <p> 
        <table width="50%"> 
      <tr> 
       <td>Player</td> 
       <td>Level</td> 
       <td>Total honour</td> 
      </tr> 
      <tr><td class="f" colspan="2">No results</td></tr></table> </p> 
    </div></div> 
    <?} else {?> 
     <div class="title_box"><div class="title_inner"> 
     Results </div></div> 
    <div class="title2_box"><div class="title2_inner"> 
    <p> 
        <table width="50%"> 
      <tr> 
       <td>Player</td> 
       <td>Level</td> 
       <td>Total honour</td> 
      </tr> 
      <tr><td class="f" colspan="2"><?$functions->Search();?></td></tr></table> </p> 
    </div></div> 
    <?}?> 
</div> 

<script type='text/javascript'>var tickerArray = new Array();function doTicker(){ 
            n=new Date(); 
            if (tickerArray.length > 0) 
            { 
             for (i = 0; i < tickerArray.length; i++) 
             { 
              if (isNaN(document.getElementById(tickerArray[i]["id"]))) 
              { 
               var e = document.getElementById(tickerArray[i]["id"]); 
               s = tickerArray[i]["sek"]; 
               m = 0; 
               h = 0; 
               d = 0; 
               if (s < 0) 
                e.innerHTML = "---"; 
               else 
               { 
                var timeTXT = s + " s"; 
                if (s > 59) 
                { 
                 m = Math.ceil(s/60); 
                 s = s-m * 60; 
                 timeTXT = m + " m"; 
                } 
                if (m > 59) 
                { 
                 h = Math.ceil(m/60); 
                 m = m - h * 60; 
                 timeTXT = h + " h"; 
                } 
                if (h > 24) 
                { 
                 d = Math.ceil(h/24); 
                 h = h-d * 24; 
                 timeTXT = d + " d"; 
                } 

                e.innerHTML = timeTXT; 
                tickerArray[i]["sek"]--; 
               } 
              } 
             } 
            window.setTimeout("doTicker();",999); 
           } 
          }doTicker();</script> 
</div> 
+1

在發佈數據中搜索%和*,然後將其傳遞給數據庫:其中名稱像$ variable。 「%」 – 2013-04-05 20:04:33

+0

它應該看起來像這樣: 「SELECT * FROM users WHERE username ='$ keyword%''? – karolis 2013-04-05 20:08:17

回答

0
  1. 使用這個簡單的代碼的所有用戶記錄: http://www.simonerodriguez.com/ajax-form-submit-example/

  2. 刪除表單上的 「on_submit」 行動。

  3. 在文本框中添加屬性: onKeyDown =「xmlhttpPost('response_ajax.php,'MyForm','MyResult',''); return false;」

  4. 第三個參數 「MyResult」 將是無論你在php文件輸出,所以它會被放置在一個名爲 「MyResilt」 DIV ID = 「MyResult」>/DIV>

DIV

您的php文件可以輸出如下內容: echo「$ Result」

這會做你想做的。