我的查询不是/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/