在PHP中搜索数据库从单列到全部

时间:2012-06-29 15:48:57

标签: php mysql

好的,我是新手,但这就是我需要的。我有一个代码,它将搜索特定的列并返回我搜索的内容,但是如何修复此代码以搜索数据库中的任何内容并显示相应的行信息。

<?php
//PHP CODE STARTS HERE

if(isset($_GET['submit'])){

    // Change the fields below as per the requirements
    $db_host="localhost";
    $db_username="megan";
    $db_password="megan";
    $db_name="megan";
    $db_tb_name="user";
    $db_tb_atr_name="location";

    mysql_connect("$db_host","$db_username","$db_password");
    mysql_select_db("$db_name");

    $query=mysql_real_escape_string($_GET['query']);

    $query_for_result=mysql_query("SELECT * FROM $db_tb_name WHERE 
    $db_tb_atr_name like '%".$query."%'");


    echo "<h2>Search Results</h2><ol>";
    while ($data_fetch=mysql_fetch_array($query_for_result))
    {
        echo "<li>";
        echo substr($data_fetch[$db_tb_atr_name], 0,160);
        echo "</li><hr/>";
    }
    echo "</ol>";

    mysql_close();
}
?>

这就是我所拥有的。如您所见,它目前在位置列中搜索信息。但我希望能够在任何专栏中搜索任何单词。目前,它将显示该关键字出现的次数,但不显示其余的行信息。我希望这是有道理的。

1 个答案:

答案 0 :(得分:2)

看看这个SQLFiddle Demo

据我所知,你能得到的最接近的是CONCAT所有的专栏,并做了类似的事情。

SELECT * FROM Test WHERE CONCAT(cola,colb,colc,cold) LIKE '%keyword%'