【问题标题】:Get MySQL data WHERE column equals HTML link when clicked单击时获取 MySQL 数据 WHERE 列等于 HTML 链接
【发布时间】:2014-03-06 11:54:46
【问题描述】:

不太清楚如何使用这个,任何帮助将不胜感激。因此,我正在尝试显示与已单击的链接列匹配的产品。当我点击一个按钮(搜索)时,我已经成功地完成了搜索功能。现在我正在尝试在按下链接时实现类似的方法。

    $sql = "SELECT * FROM products ";
    if(isset($_POST['Submit'])){
        if(empty($_POST['Search'])){
            $error = true;
        }else{
        $searchq = mysql_real_escape_string($_POST['Search']);
        $searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
        $sql .= "WHERE type LIKE '%$searchq%' or name LIKE '%$searchq%'";       
    } 
} $query = mysql_query($sql) or die(mysql_error());

链接是这样的,所以当用户点击链接时,它会根据链接中的 name="" 显示数据,该链接与表 products 中的列类型匹配。

<ul>
            <li name="Books" class="menu-781"><a href="#">Books</a></li>
            <li name="Perfume" class="menu-780"><a href="#">Perfume</a></li>
            <li name="Gifts" class="menu-789"><a href="#">Gifts</a></li>
            <li name="Stationery" class="menu-778 last""><a href="#">Stationery</a></li>
        </ul>

提前致谢。

【问题讨论】:

    标签: php html mysql


    【解决方案1】:

    如果您的链接将转到另一个页面或同一页面,您可以发送一个带有链接的参数,代码将类似于

     <li name="Books" class="menu-781"><a href="somepage.php?name='Books'">Books</a></li>
    

    在另一个页面中,您可以使用以下方法获取值:

     $searchq=$_GET['name'];
    

    现在您从链接而不是表单搜索中获得了值,您可以进行查询

    【讨论】:

    • 我明白了,它在同一页面上返回结果。 zzlalani 发布的代码很有魅力,感谢您的建议。
    【解决方案2】:

    试试这个代码

    <ul>   
            <li name="Books" class="menu-781"><a href="search.php?q=Books">Books</a></li>
            <li name="Perfume" class="menu-780"><a href="search.php?q=Perfume">Perfume</a></li>
            <li name="Gifts" class="menu-789"><a href="search.php?q=Gifts">Gifts</a></li>
            <li name="Stationery" class="menu-778 last""><a href="search.php?q=Stationery">Stationery</a></li>
        </ul>
    

    在你的 php 中

    $sql = "SELECT * FROM products ";
        if(isset($_GET['q'])){
            if(empty($_GET['q'])){
                $error = true;
            }else{
                $searchq = mysql_real_escape_string($_GET['q']);
                $searchq = preg_replace("#[^0-9a-z]#i","",$searchq);
                $sql .= "WHERE type LIKE '%$searchq%' or name LIKE '%$searchq%'";       
            } 
        } 
    $query = mysql_query($sql) or die(mysql_error());
    

    【讨论】:

    • 效果很好!干杯zzlalani!非常感谢,我知道整个 $_GET 但有点困惑:(
    • 还必须使用 PDO 或 MySQLi 函数,因为 mysql_* 已被弃用。干杯
    【解决方案3】:

    好吧,您可以创建 GET 请求而不是 POST。例如,您可以像这样创建 url:

    http://someurl.com/?filter=gifts

    在您需要从 GET 而非 POST 中获取变量之后。

    一个建议,如果您使用 PDO,您的应用程序会更安全。欲了解更多信息,请访问:http://hu1.php.net/manual/en/book.pdo.php

    【讨论】:

    • 谢谢!会看看
    猜你喜欢
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2014-05-20
    相关资源
    最近更新 更多