2013-04-05 5 views
0

Bonjour je voulais poser une question, maintenant je commence à travailler avec un moteur de recherche, alors pouvez-vous suggérer des fonctions ou des façons de commencer ou de quoi utiliser pour faire un moteur de recherche des utilisateurs de base de données par nom d'utilisateur.Il peut chercher à partir d'un symbole dans un autre mot j'écris 'k' et ensuite il recherche tous les noms d'utilisateur qui commencent par le nom d'utilisateur 'k'. Exemple: http://postimg.org/image/sg84ny3w3/php suggestion de moteur de recherche

essayé:

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

rechercher% et * dans les données de poste, puis passer cela à la base de données: où nom comme $ variable. "%" –

+0

il devrait ressembler à quelque chose comme ceci: "SELECT * FROM utilisateurs WHERE nom d'utilisateur = '$ mot-clé%'"? – karolis

Répondre

0
  1. utilisent ce code simple: http://www.simonerodriguez.com/ajax-form-submit-example/

  2. supprimer l'action "on_submit" sur le formulaire.

  3. dans la zone de texte, ajoutez l'attribut: onKeyDown = "xmlhttpPost ('response_ajax.php, 'MonFormulaire', 'MonRésultat', ''); return false;"

  4. 3ème paramètre "MonRésultat" sera tout ce que vous sortie dans le fichier php, il sera placé dans un div appelé "MyResilt" div id = "MonRésultat">/div>

Votre fichier php peut produire quelque chose comme: echo "$ Result"

Cela fera ce que vous voulez.