• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Porównanie pierwszego elementu tablicy z sessionId ?

Object Storage Arubacloud
0 głosów
164 wizyt
pytanie zadane 20 lipca 2022 w PHP przez mat19 Obywatel (1,580 p.)

Mam funkcje getFriends która zwraca tablicę z wynikami. Chcę porównać pierwszy element tablicy, czyli user_id z sesją id. Problem polega na tym, że porównuje całą tablicę a nie pierwszy element. Przy użyciu funkcji array_slice też zwracana jest cała tablica. Nie wiem dlaczego tak jest 

class FriendDisplaying
{
    public function __construct(private PDO $pdo)
    {
    }

    public function getFriends(int $id, int $sessionId): array
    {
        $sql = $this->pdo->prepare("
            SELECT user.user_id, avatar, first_name, last_name
            FROM user
            JOIN friend ON user.user_id = friend.request_from_id
            where request_to_id = :id AND friend.status='znajomy'
            UNION ALL 
                SELECT user.user_id, avatar, first_name, last_name
                FROM user
                JOIN friend ON user.user_id = friend.request_to_id
                where request_from_id = :id AND friend.status='znajomy'");
        $sql->bindParam(':id', $id, PDO::PARAM_INT);
        $sql->bindParam(':session', $sessionId, PDO::PARAM_INT);
        $sql->execute();

        $friends = [];
        while ($row = $sql->fetch()) {
            $friends[] = new Friend(
                $row['user_id'],
                $row['avatar'],
                $row['first_name'],
                $row['last_name']);
        }
        return $friends;
    }
}
$userId = $_SESSION['user_id'];
        $friends =$displaying->getFriends($id->getUserId(), $userId);



             var_dump($friends[0]);

             if($friends[0] != $userId){
                    $result = true;
             }else{
                 $result = false;
             }

 

komentarz 20 lipca 2022 przez VBService Ekspert (253,420 p.)
edycja 20 lipca 2022 przez VBService

Możesz, proszę, pokazać co zwraca kod

var_dump($friends);

w kontekście

$userId = $_SESSION['user_id'];
$friends =$displaying->getFriends($id->getUserId(), $userId);
 
var_dump($friends);
 
if($friends[0] != $userId)
    $result = true;
else
    $result = false;

 

BTW, ustawiasz

$sql->bindParam(':session', $sessionId, PDO::PARAM_INT);

a nigdzie w kodzie sql nie wykorzystujesz :session

$sql = $this->pdo->prepare("
            SELECT user.user_id, avatar, first_name, last_name
            FROM user
            JOIN friend ON user.user_id = friend.request_from_id
            where request_to_id = :id AND friend.status='znajomy'
            UNION ALL 
                SELECT user.user_id, avatar, first_name, last_name
                FROM user
                JOIN friend ON user.user_id = friend.request_to_id
                where request_from_id = :id AND friend.status='znajomy'");

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 208 wizyt
pytanie zadane 26 października 2022 w C i C++ przez patrykpatryczek01 Nowicjusz (200 p.)
0 głosów
1 odpowiedź 214 wizyt
0 głosów
1 odpowiedź 308 wizyt

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...