我需要帮助从MySQL表中使用下拉菜单$_GET,使用一组标签中的LIKE


I need help using a dropdown menu to $_GET from a MySQL table using LIKE from a group of tags

所以我有一个带有多个类别的项目表。我总是遇到问题。以下是我的代码片段:

    <form class="forms" action="form.php" method="get">
    <fieldset>
    <legend>Sort by Category</legend>
    <select name="tags">
    <option value="business" title="Business">Business</option>
    <option value="environmental" title="Environmental">Environmental</option>
    <option value="hospitality" title="Hospitality">Hospitality</option>
    </select><input type="submit" class="inputButton" value="Select Category" />
    </fieldset>
    </form>
    <?php
    $tags = $_GET['tags'];

    $connection = mysql_connect($local,$user,$pass) or die (mysql_errno().' : '.mysql_error().'<br />');
    mysql_select_db($db);
    $query = 'SELECT * FROM awards WHERE active=1 ORDER BY name';
    $result = mysql_query($query);
    $num = mysql_num_rows($result);
    while ($row = mysql_fetch_array($result)) 
    {
        if ($tags == 'business')
        {
            $where = "SELECT * FROM awards WHERE active=1 AND
tags LIKE '%business%' ORDER BY name";
}
    else if ($tags == 'environmental')
    {
        $where = "SELECT * FROM awards WHERE active=1 AND 
tags LIKE '%environmental%' ORDER BY name";
}
    else if ($tags == 'hospitality')
    {
        $where = "SELECT * FROM awards WHERE active=1 AND 
tags LIKE '%hospitality%' ORDER BY name";
    }
        else
        {
            $where = 'SELECT * FROM awards WHERE active=1 ORDER BY name';
            $title = 'Awards in Alphabetical Order';
        }
    }
    include 'conn.php';
    $connection = mysql_connect($local,$user,$pass) or die (mysql_errno().' : '.mysql_error().'<br />');
    mysql_select_db($db);
    $query = 'SELECT * FROM awards $where';
    $result = mysql_query($query);
    $num = mysql_num_rows($result);
?>

之后,回声等等,我对此没有任何问题。我似乎无法让它只拉我想要的唱片。我是不是走错了路?我的表中的行"标记"有多个逗号分隔的值。因此,如果有人选择了"business",它就不应该提取任何没有"business"作为标记的记录。我应该把我的"标签"作为单独的行吗?

<?php
    $tags = $_GET['tags'];
if ($tags == 'business' || $tags == 'environmental' || $tags == 'hospitality')
{
            $where = "SELECT * FROM awards WHERE active=1 AND
tags LIKE '%$tags%' ORDER BY name";
}
else
{
     $where = 'SELECT * FROM awards WHERE active=1 ORDER BY name';
            $title = 'Awards in Alphabetical Order';
}
include 'conn.php';
$connection = mysql_connect($local,$user,$pass) or die (mysql_errno().' : '.mysql_error().'<br />');
mysql_select_db($db);
$result = mysql_query($where);
$num = mysql_num_rows($result);
while ($row = mysql_fetch_array($result)){
    //echo here whatever u want from the rows fetched with matching tags
}

您应该开始使用PHP PDO进行数据库访问,因为这里使用的方法很快就会贬值。。

PDO手动链接