class Posts{
public $db;
private $users = array();
function __construct($db){
$this->db = $db;
}
function GetUsersLiked($post_id){
$res = $this->db->query("SELECT u.`id`, u.`firstName`, u.`lastName`, u.`country_name`, u.`city_name`
FROM `likes_posts` lk
INNER_JOIN `users` u ON u.`id` = lk.`user_id`
WHERE lk.`post_id` = {$post_id}");
while($row = $res->fetch_assoc()){
// теперь добавляем все полученные результаты в класс User, который и слепит нам объект
/*==== вот этот код у нас повторяется с классом UserS ====*/
// полагаю, тогда нам нужно вызывать метод addUser() из класса Users, а не сразу обращаться к классу User?
$user = new User($row['id']);
$user->firstName = $row['firstName'];
$user->lastName = $row['lastName'];
/*============*/
/*===== Вот тут опять повторяется код, поэтому я и решил, что нужно создать отдельный метод в классе UserS ====*/
$locObject = [
"city" => $row["city_name"],
"country" => $row["country_name"]
];
$user->setLocation($locObject);
/*===========*/
// А тут опять что-то не то, в итоге мы все равно создаем массив юзеров, как и у меня в примере выше
$this->users[$id] = $user;
}
}
}
class Users{
private $users = array(); //записываем данные о полученных юзерах со всех методов
// получаем список лайкнувших пост
function getUsersLiked($post_id){
// запрос в БД
}
// получаем список всех юзеров
function getAllUsers(){
// запрос к БД
}
// получаем список подписчиков какого-то конкретного юзера
fucntion getFollowers($owner_id){
// запрос к БД
}
// ..... и так далее для каждого случая
function showUsers(){
// Выводим все, что есть в массиве $this->users
// При этом проверяя существование каждого поля, если его нет - просто не выводим
}
// .... ну и дальше другие методы вроде соединения каких-то отдельных полей
// к этим методам будет обращаться метод showUsers()
function getLocation($user_id){
return $this->users[$user_id]['country_name'].', '.$this->user[$user_id]['city_name'];
}
}
SELECT `tovar`.* FROM `tovar`
LEFT JOIN `category` ON `category`.`id` = `tovar`.`id`
WHERE `category`.`path` = '{$cat_id}' OR `category`.`path` LIKE '{$cat_id}-%'