2012-07-31 196 views
0

我想为我的网站做一个搜索引擎,但我很好奇如何使它自动更新,即像谷歌​​,脸书等没有页面重新加载。sql搜索引擎autoupdate php

我目前在InnoDB表和PHP中使用MySQL。我知道如何进行MySQL搜索,但是没有人会提供关于如何在搜索栏中生成结果的建议,而无需重新加载页面。我自己做了一些研究,没有太有用的东西出现。此外,使用MyISAM引擎的全文比通过索引行搜索更有用。

我仍在学习web开发的细节,所以我更喜欢代码建议,而不是“链接到此程序并执行此操作”。一旦我知道自己在做什么,那会晚一些。

谢谢全部

+2

ajax/jquery会工作 – ryanbwork 2012-07-31 00:41:22

回答

0

您可以使用AJAX来实现这一点。您可以编写一个小PHP脚本,根据当前输入到搜索框中的字符对数据库进行简单调用,然后使用AJAX调用它来填充搜索框。我不会把所有东西写出来,因为这不是网站的内容,但你可以从这里开始。网上也有很多这样的教程。

AJAX:

function getXmlHttpRequestObject() { 
    if (window.XMLHttpRequest) { 
     return new XMLHttpRequest(); 
    } else if(window.ActiveXObject) { 
     return new ActiveXObject("Microsoft.XMLHTTP"); 
    } else { 
     alert("Your browser does not support AJAX, please upgrade."); 
    } 
} 

//Create XMLHTTPRequest Object 
var searchEntry = getXmlHttpRequestObject(); 

//Send AJAX request, do something when it sends a response 
function searchSuggest() { 
    if (searchReq.readyState == 4 || searchReq.readyState == 0) { 
      var str = document.getElementById('insertsearchboxidhere').value; 
      searchEntry.open("GET", 'yourphpscript.php?search=' + str, true); 
      searchEntry.onreadystatechange = doSearchStuff(); 
      searchEntry.send(null); 
     }  
    } 



//Function that does the work with the response 
function doSearchStuff() { 
    if (searchReq.readyState == 4) { 
     var str = searchEntry.responseText; 
      //Set innerHTML of your stuff to str, whatever else you want 
    } 
} 

PHP:显然,你需要比下面的代码比较多,但工作的冲击将通过返回从数据库中,与目前进入该字母开头的条目来完成搜索框。你可以找出其余的。

$query = "Select distinct(x) from (y) where x like '(z)%'"; 

X =场,Y =表,您通过AJAX

发送Z =变量,应该是绰绰有余建立一个搜索框更新更多。

+0

非常感谢我非常感谢您的帮助。我确实有一本书中有一些Ajax,但我还没有真正涉及该部分。我确实同意“这不是网站的目的”,因为我真的很想学好,而不是复制粘贴材料。 – jlofft 2012-07-31 02:47:29