1

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

<?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();
}
?>

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

4

1 回答 1

2

看看这个SQLFiddle 演示

据我所知,您可以获得的最接近的方法是 CONCAT'ing 您的所有列,并进行类似操作。

SELECT * FROM Test WHERE CONCAT(cola,colb,colc,cold) LIKE '%keyword%'
于 2012-06-29T15:58:35.213 回答