选择与特定ID关联的行中的特定列

时间:2015-08-01 20:36:32

标签: php mysql

我在这里遇到了一些麻烦,我在谷歌和Stackexchange上进行了一些搜索,看看是否其他人之前已经回答了这个问题,但它没有找到有用的内容,所以我要求一些帮助。我有一个确实存在于数据库中的列名,但由于某种原因,对MySQL的查询一直说该列名称的索引不存在(未定义的索引:)是我得到的但它是在表中定义所以我想也许我可以先通过请求id来另一种方式,然后获取与该特定id行相关联的column_name值。然后我想将它返回到变量$ column_name以在我的下一个查询中使用该变量。通常当我做$ id = $ _REQUEST ['id'];我获取了在浏览器中呈现的项目的当前ID。但是这个“column_name”会一直返回一个未定义的索引错误。然而它就像ID列一样存在于DB中。为什么我可以打电话给另一个而不打另一个?

如何调用与$ _REQUEST ['id']中的id关联的指定column_name;全局变量?

在数据库中找到:

id = "Value"

itemId = "Item ID"

CategoryName = "Category"

如果我请求ID 1,我该如何获取具有该ID的关联CategoryName?

感谢您的帮助!

        $id = $_REQUEST['id'];

           if(!empty($id)){
               $column_name = $this->dbConnection->query("SELECT column_name FROM table   //That is directly associated with $id");
           }

2 个答案:

答案 0 :(得分:2)

在查询中的WHERE子句中添加$ id:

$column_name = $this->dbConnection->query("SELECT CategoryName FROM table WHERE id = $id");

另外,请记住要转义发送给数据库的所有参数,而不要使用$ id容易受到SQL注入攻击。

祝你好运:)

答案 1 :(得分:2)

我能够解决这个问题,感谢@ frz3993,将categoryName = {some cat name}添加到动态生成的链接,重定向到相关页面,同时也动态生成类别值。

上一页需要修改链接,例如

href="DynamicallyGeneratedLink.php?categoryName=%s&id=%s"

这使得类别名称可用于$ _REQUEST [];变量然后使用它来创建一个新的动态生成的链接,允许访问者返回到该类别中以前的完整项目列表,而无需使用后退按钮。

现在,以下代码如下所示

    function backToCategoryList($dbConnection){

        $categoryName = $_REQUEST['categoryName'];

        if($r = $this->dbConnection->query("SELECT categoryName FROM table WHERE categoryName = '$categoryName' LIMIT 1")){
            while($d = $r->fetch_assoc()){
                printf("<a href=\"%s?categoryName=%s\"><i class=\"icon icon-th\"></i></a>", $d['link'], $d['categoryName']);
            }               
        }
    }