php - 是否有一种标准方法可以将查询从 ID 交换到不同的列(例如 'name' )?

标签 php mysql

我的查询不是/search.php?cat=2 之类的,而是/search.php?cat=SomeName。

我刚刚开始学习 PHP 和 MYSQL,当然感觉有很多我不知道的标准实践。我刚刚掌握了一些窍门(你可能不同意;)并编写了一个将名称替换为 ID 的函数,该函数正在工作。

有更标准的方法吗?

工作代码:

function swap_name_for_id($name, $search) {
        global $connection;
        if ($search == 'category') {
            $query = "SELECT categories.id, categories.name
                FROM categories 
                WHERE categories.name = '{$name}'";
        }
        $swap_set = mysqli_query($connection, $query);
        confirm_query($swap_set);
        while ($swap = mysqli_fetch_array($swap_set)) {
            $search_id = $swap["id"];
        }
        return $search_id;
    }
function get_parts_for_category($category_name) {
        $category_id = swap_name_for_id($category_name,     'category');
        global $connection;
        $query = "SELECT parts.id, parts.name, parts.    part_category
                FROM parts 
                WHERE part_category = {$category_id}
                ORDER BY name ASC";
        $part_set = mysqli_query($connection, $query);
        confirm_query($part_set);
        return $part_set;
    }

最佳答案

一般来说,据我所知,您只需像您一样执行第二个查询,尽管它们通常组合成一个查询,如下所示:

function get_parts_for_category($category_name) {
    global $connection;
    $query = "SELECT parts.id, parts.name, parts.part_category
            FROM parts 
            WHERE part_category = (SELECT categories.id FROM categories WHERE categories.name = '{$category_name}')
            ORDER BY name ASC";
    $part_set = mysqli_query($connection, $query);
    confirm_query($part_set);
    return $part_set;
}

关于php - 是否有一种标准方法可以将查询从 ID 交换到不同的列(例如 'name' )?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17606833/

相关文章:

php - 购物车 $_SESSION 问题

php - 从 PHP 中预先生成的集合中随机分发彩票

mysql - 如何优化SQL中的子查询?

mysql - 多个线程可以操作同一个数据库吗?

mysql - Magento sql 导入和自动递增重复错误

php - HTACCESS 将 : Ignore Language code and add index. php 重写到 url 而不更改它

php - 如何使用不同的where子句将2个mysql查询合并为1个

php - 从 php 更新 Twitter 状态

MySQL仅从列中选择某些值而不排除行

MySQL View : polymorphic associations and child tables