Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在MySQL表中提供可搜索的项目;标签;_Php_Mysql_Database - Fatal编程技术网

Php 如何在MySQL表中提供可搜索的项目;标签;

Php 如何在MySQL表中提供可搜索的项目;标签;,php,mysql,database,Php,Mysql,Database,我有一个以下样式的MySQL表: 姓名标签 电脑、电脑、游戏技术 电脑游戏、键盘、显示器 等等 我想知道,是否有可能使这些搜索。例如,如果有人搜索“PC”,那么结果就是技术。如果有人搜索“游戏”,那么技术和计算机将成为搜索结果。到目前为止,我的代码如下: <?php //Include the connection file include "subconnect.php"; $sql = "SELECT * FROM subs"; if(isset($_POST['search'

我有一个以下样式的MySQL表:

姓名标签 电脑、电脑、游戏技术 电脑游戏、键盘、显示器

等等

我想知道,是否有可能使这些搜索。例如,如果有人搜索“PC”,那么结果就是技术。如果有人搜索“游戏”,那么技术和计算机将成为搜索结果。到目前为止,我的代码如下:

<?php
//Include the connection file
include "subconnect.php";

$sql = "SELECT * FROM subs";



if(isset($_POST['search'])) {

     $search_term = mysql_real_escape_string($_POST['search_box']);


     $sql .= " WHERE tags = '{$search_term}'";

}


$query = mysql_query($sql) or die(mysql_error());

?>

<form name="search_form" method="POST" action="subsearch.php">

   Search: <input type="text" name="search_box" value="" />

   <input type="submit" name="search" value="Enter a category to find Subreddits!">
</form>
<table width="70%" cellpadding="5" cellspace="5">

<tr>
<td><h1>Name</h1></td>

</tr>
<?php while($row = mysql_fetch_array($query)) { ?>
<tr>
<td><?php echo $row['name']; ?></td>
</tr>
<?php } ?>

</table>

谢谢你的帮助

轻度测试

那么,我是否理解您有一个带有列的数据库设置,其中有一种标签列

如果是这样的话,那么是的,您确实可以使用RLIKE命令搜索它们(我相信还有许多其他命令)


应该这样做。记住要转义正在输入的数据。也许在PhpBB中创建一种请求var函数会对您有所帮助?

我希望我已经理解了这个问题

你可以表演o a,但我认为这不是最好的方式

最好的方法是创建一个支持表“Tags”,并与原始表创建一个关系n->n

SELECT * FROM subs WHERE tags RLIKE 'PC'