sql搜索引擎autoupdate php

时间:2012-07-31 00:39:34

标签: php sql search auto-update

我正在尝试为我的网站制作一个搜索引擎但是我很好奇如何让它自动更新,例如google,facebook等,而不会重新加载页面。

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

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

全部谢谢

1 个答案:

答案 0 :(得分: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 = field,y = table,z =您通过AJAX发送的变量

这应该足以构建更新搜索框。