Ekspert Vast 974 Napisano 22 Stycznia Ekspert Udostępnij Napisano 22 Stycznia Witam, mam zagwozdkę od paru godzin w sprawie niedziałającego warunku IF W bazie danych mam rekord, który w tabeli zawiera uid użytkownika : a:1:{i:0;a:3:{i:0;s:1:"4";i:1;s:1:"1";i:2;s:4:"2764";}} ( Z czego "4", "1", "2764" są to ID użytkowników) co do kodu nie jest niczym skomplikowanym i wygląda w ten sposób: $who = unserialize($seenby['who']); /* who to kolumna w której przetrzymuje ID użytkownikow */ if (in_array($mybb->user['uid'], $who)) { echo $mybb->user['uid']. "<br/>"; } else { echo "brak"; } Dziękuje za pomoc dobrym duszom 😆 Odnośnik do odpowiedzi Udostępnij na innych stronach
Administrator Mativve 3 922 Napisano 22 Stycznia Administrator Udostępnij Napisano 22 Stycznia Ja bym sobie dał var_dump przed warunkiem i sprawdził co zawiera i czy w ogóle coś zawiera zmienna $who jak i $mybb->user['uid'] - robiłeś tak? Vast dodał reakcję 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert Vast 974 Napisano 22 Stycznia Autor Ekspert Udostępnij Napisano 22 Stycznia Tak sprawdzałem, od razu pomyślałem, że może są puste, ale okazało się niestety (dla mnie) działają prawidłowo. uid = string(1) "1" tabela = array(1) { [0]=> array(3) { [0]=> string(1) "4" [1]=> string(1) "1" [2]=> string(4) "2764" } } Odnośnik do odpowiedzi Udostępnij na innych stronach
Administrator Rozwiązanie Mativve 3 922 Napisano 22 Stycznia Administrator Rozwiązanie Udostępnij Napisano 22 Stycznia (edytowane) Niestety in_array szuka chyba po głównych elementach i nie idzie w głąb tablicy (tak to sobie tłumaczę), gdy zamiast $who dałem $who[0] to wyszło mi true - mam nadzieję, że dobrze to ogarnąłem Edytowane 22 Stycznia przez Mativve Vast, Tomik i SeNioR dodali reakcje 2 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert Vast 974 Napisano 22 Stycznia Autor Ekspert Udostępnij Napisano 22 Stycznia Takie proste a tyle czasu stracone no nic, dziękuje 😆 Mativve dodał reakcję 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
Ekspert -n3veR 6 239 Napisano 22 Stycznia Ekspert Udostępnij Napisano 22 Stycznia `unserialize( ... )` na tym JSONie zwróci taką strukturę: [ [ "4", "1", "2764", ] ] Trochę słabo, ale... Do uratowania. Spróbuj tego tego kodu: $who = array_merge(...unserialize($seenby['who'] ?? '{}')); $userId = (string)($mybb->user['uid'] ?? '0'); if ($userId === '0' || !in_array($userId, $who, true)) { return; } echo $userId; SeNioR i Vast dodali reakcje 1 1 Odnośnik do odpowiedzi Udostępnij na innych stronach
Rekomendowane odpowiedzi
Problem wciąż nierozwiązany? Dodaj swoją odpowiedź
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się