使用PHP实现最佳类别和产品关系的最佳OOP方法是什么?
我正在尝试设计一个PHP项目的结构。我不太确定的是如何实现类别和产品关系。一个类别有一个父类别,并且可以有多个子类别。产品只属于一个类别。 Db表如下所示: 产品: 标识产品\名称类别\标识 类别 id类别\名称父项\ id 我为产品创建了一个类,为类别创建了一个类。但我不知道以面向对象的方式将它们联系起来的最佳方式是什么 我应该有更多像CategoryManager这样的类吗?如果是,它应该是什么样子 任何人都有很好的方法在代码级别实现关系,而不是在数据库级别使用PHP实现最佳类别和产品关系的最佳OOP方法是什么?,php,oop,categories,product,Php,Oop,Categories,Product,我正在尝试设计一个PHP项目的结构。我不太确定的是如何实现类别和产品关系。一个类别有一个父类别,并且可以有多个子类别。产品只属于一个类别。 Db表如下所示: 产品: 标识产品\名称类别\标识 类别 id类别\名称父项\ id 我为产品创建了一个类,为类别创建了一个类。但我不知道以面向对象的方式将它们联系起来的最佳方式是什么 我应该有更多像CategoryManager这样的类吗?如果是,它应该是什么样子 任何人都有很好的方法在代码级别实现关系,而不是在数据库级别 提前谢谢。在我看来,有Produ
提前谢谢。在我看来,有
Product->getCategory()
和Category->getProducts()
这样的方法就足够了。在我看来,有Product->getCategory()
和Category->getProducts()
这样的方法就足够了。我会这样做
一个产品可以有一个类别,但一个类别可以有多个产品
class products
{
public $productname;
public $price;
public function getProduct($id)
{
return $this->db->fetch("select * from Products where id={$id}");
}
}
class Category extends Products
{
public $category;
public function __construct()
{
parent::__construct();
}
public function getCategoryProduct($id)
{
$this->getProduct($id);
}
}
我会这样做 一个产品可以有一个类别,但一个类别可以有多个产品
class products
{
public $productname;
public $price;
public function getProduct($id)
{
return $this->db->fetch("select * from Products where id={$id}");
}
}
class Category extends Products
{
public $category;
public function __construct()
{
parent::__construct();
}
public function getCategoryProduct($id)
{
$this->getProduct($id);
}
}
这是我昨晚试图为我的论坛->主题关系做的事情。程序编程很容易。基本上,您试图实现的目标是: 程序化编程:
function get_categories
{
//1. Perform database query for categories
$sql_categories = "SELECT * FROM categories ORDER BY category_id ASC";
$res_categories = mysqli_query($conn, $sql_categories);
//2. Return result
return $res_categories_classic;
}
function get_products
{
//3. Get the returned data from the categories query
$res_categories = get_categories();
while ($array_categories = mysqli_fetch_assoc($res_categories))
{
//4. Perform database query for products
$sql_forums = "SELECT * FROM products WHERE product_id = {$array_categories["category_id"]}";
$res_forums = mysqli_query($conn, $sql_forums);
//5. Display returned data from products
}
}
//1. Get all the Categories
public function get_categories()
{
$this->db->select('*');
$this->db->from('categories');
$this->db->order_by('category_id', 'asc');
$query = $this->db->get();
return $query->result_array();
{
//2. Get all the related products
public function get_products($category_id)
{
$products = $this->db->fetch("select * from Products where product_id={$category_id}");
return $products;
}
现在在OOP PHP中,如果使用框架,这将取决于框架,但一般来说:
function get_categories
{
//1. Perform database query for categories
$sql_categories = "SELECT * FROM categories ORDER BY category_id ASC";
$res_categories = mysqli_query($conn, $sql_categories);
//2. Return result
return $res_categories_classic;
}
function get_products
{
//3. Get the returned data from the categories query
$res_categories = get_categories();
while ($array_categories = mysqli_fetch_assoc($res_categories))
{
//4. Perform database query for products
$sql_forums = "SELECT * FROM products WHERE product_id = {$array_categories["category_id"]}";
$res_forums = mysqli_query($conn, $sql_forums);
//5. Display returned data from products
}
}
//1. Get all the Categories
public function get_categories()
{
$this->db->select('*');
$this->db->from('categories');
$this->db->order_by('category_id', 'asc');
$query = $this->db->get();
return $query->result_array();
{
//2. Get all the related products
public function get_products($category_id)
{
$products = $this->db->fetch("select * from Products where product_id={$category_id}");
return $products;
}
通过点击类别的href,可以通过URL作为参数提供类别ID,基本上在框架中这将是小菜一碟,因为你已经设置了简单的路由。香草应该是一样的,但是看起来像这个网站/categories.php?categority=1这是我昨晚在论坛->主题关系中尝试做的事情。程序编程很容易。基本上,您试图实现的目标是: 程序化编程:
function get_categories
{
//1. Perform database query for categories
$sql_categories = "SELECT * FROM categories ORDER BY category_id ASC";
$res_categories = mysqli_query($conn, $sql_categories);
//2. Return result
return $res_categories_classic;
}
function get_products
{
//3. Get the returned data from the categories query
$res_categories = get_categories();
while ($array_categories = mysqli_fetch_assoc($res_categories))
{
//4. Perform database query for products
$sql_forums = "SELECT * FROM products WHERE product_id = {$array_categories["category_id"]}";
$res_forums = mysqli_query($conn, $sql_forums);
//5. Display returned data from products
}
}
//1. Get all the Categories
public function get_categories()
{
$this->db->select('*');
$this->db->from('categories');
$this->db->order_by('category_id', 'asc');
$query = $this->db->get();
return $query->result_array();
{
//2. Get all the related products
public function get_products($category_id)
{
$products = $this->db->fetch("select * from Products where product_id={$category_id}");
return $products;
}
现在在OOP PHP中,如果使用框架,这将取决于框架,但一般来说:
function get_categories
{
//1. Perform database query for categories
$sql_categories = "SELECT * FROM categories ORDER BY category_id ASC";
$res_categories = mysqli_query($conn, $sql_categories);
//2. Return result
return $res_categories_classic;
}
function get_products
{
//3. Get the returned data from the categories query
$res_categories = get_categories();
while ($array_categories = mysqli_fetch_assoc($res_categories))
{
//4. Perform database query for products
$sql_forums = "SELECT * FROM products WHERE product_id = {$array_categories["category_id"]}";
$res_forums = mysqli_query($conn, $sql_forums);
//5. Display returned data from products
}
}
//1. Get all the Categories
public function get_categories()
{
$this->db->select('*');
$this->db->from('categories');
$this->db->order_by('category_id', 'asc');
$query = $this->db->get();
return $query->result_array();
{
//2. Get all the related products
public function get_products($category_id)
{
$products = $this->db->fetch("select * from Products where product_id={$category_id}");
return $products;
}
通过点击类别的href,可以通过URL作为参数提供类别ID,基本上在框架中这将是小菜一碟,因为你已经设置了简单的路由。香草应该是一样的,但是看起来smt就像这个网站/categories.php?category=1