ребята, я пытаюсь получить список идентификаторов сайтов в соответствии с идентификатором пользователя.
Это то, что я получил до сих пор.
public function getSites(){
$stmt = $this->db->prepare("SELECT Sites_idSites FROM favorites WHERE
User_idUser=:idUser");
$userId =$_SESSION['user_session']['idUser'];
$stmt->bindparam(":idUser", $userId);
$stmt->execute();
$siteList= $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($siteList as $value){
foreach($value as $key){
$stmt = $this->db->prepare("SELECT * FROM sites WHERE idSites=:siteList");
$stmt->bindparam(":siteList",$key);
}
$stmt->execute();
$userSites = $stmt->fetch(PDO::FETCH_ASSOC);
}
return $userSites;
Это часть, в которую я захожу в таблицу «Избранное» и получаю все идентификаторы сайта, соответствующие идентификатору пользователя.
$stmt = $this->db->prepare("SELECT Sites_idSites FROM favorites WHERE
User_idUser=:idUser");
$userId =$_SESSION['user_session']['idUser'];
$stmt->bindparam(":idUser", $userId);
$stmt->execute();
$siteList= $stmt->fetchAll(PDO::FETCH_ASSOC);
$ siteList возвращается в виде массива, подобногоэто:
Array
(
[0] => Array
(
[Sites_idSites] => 20
)
[1] => Array
(
[Sites_idSites] => 21
)
[2] => Array
(
[Sites_idSites] => 22
)
)
Теперь я хочу пойти к таблице, где находятся все сайты, и получить только те с этими идентификаторами.
Это то, что я использую, но этополучает только последний:
foreach($siteList as $value){
foreach($value as $key){
$stmt = $this->db->prepare("SELECT * FROM sites WHERE idSites=:siteList");
$stmt->bindparam(":siteList",$key);
}
$stmt->execute();
$userSites = $stmt->fetch(PDO::FETCH_ASSOC);
}
Если я сделаю print_r ($ userSites), я вернусь:
Array
(
[idSites] => 22
[name] => rwrwer
[url] => werwerwerwer
[Category_idCategory] => 1
)
Как вы можете видеть, он возвращает только последний.Как мне сделать так, чтобы он возвращал массив со всеми сайтами в нем?Я что-то не так делаю?
РЕДАКТИРОВАТЬ: Привет, ребята, после стольких исследований я наконец-то исправил это.
public function getSites(){
$stmt = $this->db->prepare("SELECT sites.* FROM favorites INNER JOIN sites ON favorites.Sites_idSites = sites.idSites WHERE favorites.User_idUser = :idUser");
$userId =$_SESSION['user_session']['idUser'];
$stmt->bindparam(":idUser", $userId);
$stmt->execute();
$siteList= $stmt->fetchAll(PDO::FETCH_ASSOC);
return $siteList;
}