2014-09-10 30 views
-1

我必须在我的计算机科学工作中搜索关键字。如何从表中出现单词的行中选择行? (MySQL + PHP)

我有几个DVD的名称和说明。

用户必须搜索一个单词,然后显示所有单词出现在标题或说明中的DVD的名称。

假设我的表 中的列是“dvd标题”和“description”,并且该人员输入的字词是$关键字。

我将如何选择mysql中的行,其中$关键字至少出现一次在“dvd标题”和“说明”列中。

感谢您的阅读。任何帮助赞赏。

回答

0

你可以在这些列上创建全文索引,但是这可能不是他们想要你做的事。

你需要通配符,并且通配符与关键字LIKE比较而不是=。 MySQL中的通配符是%

SELECT * FROM mutable WHERE dvdtitle like '%keyword%' or description like '%keyword%'; 

至于使用PHP变量,创建的字符串,你必须做一些你自己的功课。

+0

感谢哥们,我发现你的答案最好,因为你最适合我解释它。我知道如何做PHP变量和字符串,所以这不会是一个问题:)只是不知道要使用哪个条款,我没有关于通配符的线索......再次感谢帮助我 – aadaaam 2014-09-10 17:05:02

0

使用此查询:

SELECT * 
FROM table_name 
WHERE dvd_title like '%$keyword%' 
OR  description like '%$keyword%' 
-1

您可以使用下面的代码示例,它不是一个完整的代码,但会给你一个想法:

$query_str = "select * from dvd_table_name where dvd_title like '%$keyword%' or description like '%$keyword%'"; 
$qh = mysql_query($query_str); 

然后使用mysql_fetch_assoc($ QH)使用while循环以检索数据;

+0

我'米投票。对于这样一个基本问题,迄今为止最完整的答案。 – 2014-09-10 16:36:05

0
$sql = "SELECT * FROM table_name WHERE dvdtitle LIKE '%".$keyword."%' OR description LIKE '%".$keyword."%'"; 

执行上面的SQL查询将返回具有指定关键字无论是列dvdtitledescription表中的所有行。