![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Serwisy takie jak grono czy nasza-klasa wprowadziły możliwość wyboru przez użytkownika, które dane mają być widoczne jakim użytkownikom. Tzn, można określić że imię będą widzeń wszyscy, zalogowani będą widzieć też nazwisko, a znajomi np: zdjęcia. Ciekaw jestem jak przy tego rodzaju profilach buduje się bazę, czy najlepszym rozwiązaniem jest po prostu dodanie dodatkowych pól w tabeli, w ten sposób:
Czy jest może lepszy, efektywniejszy sposób? -------------------- Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl |
|
|
![]() |
-mag32- |
![]() ![]()
Post
#2
|
Goście ![]() |
nie wiem jak jest, ale ja bym to zrobił tak:
Imię---|Nazwisko-|Pokaż Michał-|Nowak---|000 Przy czym każdy bit Pokaż decyduje o tym które z pól ma byc pokazywane. Czyli w tym przypadku - żadne a ostatni bit to bit kontrolny (CRC?) 011 pokaż nazwisko bez imienia 100 pokaż imie bez nazwiska itp. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 16 Pomógł: 1 Dołączył: 4.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast bitowo, można podawać cyfry 1, 2, lub 3 przy czym 1-pokaż tylko imie 2- pokaż imie i nazwisko ...itd.
Zależy jak wolisz zapisywać poziom prywatności i co dla ciebie jest bardziej czytelne |
|
|
![]()
Post
#4
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
@Qmis: No liczby tak jak ty to opisujesz to sie nie nadaja jesli chodzi o ten typ rozwiazania problemu. Pomyśl ile musialbys liczb przypisac jesli byloby 5 opcji tylko. Do tego tyllko i wylacznie bity czyli robisz mniejwiecej tak
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 37 Pomógł: 4 Dołączył: 6.08.2006 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Sposób podany przez heaven'a wydaje się być najsensowniejszy. Operatory bitowe bardzo przydają się, kiedy potrzeba określić stany kilku rzeczy i przetrzymywać je w jednym miejscu
![]() -------------------- Albi's Jogger - z pamiętnika młodego programisty
Orodlin Team Member |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli dobrze rozumiem:
option to ma być zmienna której wartość pobieram z bazy, czyli np: 0001001 tak?
czyli w tym wypadku powinno się wyświetlić 1 i 8, ale wyświetla się 1,2,4. Jak zmienię GG_VISIBILITY na 5 niezmieniając wartości $option to, ku jeszcze wiekszemu zdziwieniu wyswietla się 1,2,5,8. Pewnie cuś robie nie tak. Podany przez Ciebie przykład może być zastosowany gdy użytkownik decyduje co chce ujawnić a co nie. Można by go zastosować też w przypadku gdy decyduje co i komu pokazuje ![]() Ten post edytował szczypior 11.02.2008, 19:09:11 -------------------- Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl |
|
|
![]()
Post
#7
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zrobiles blad i pisales czaly czas NAME_VISIBILITY w 3 ifach
Tak, option i inne dane uzytkownika bobierasz z bazy i zamiast echo "<p>".NAME_VISIBILITY; powinienes napisac echo "<p>".#user_name;, oczywiscie user_name tez musisz wczesniej odczytac z bazy Wszystki definicje musza byc wielokrotnoscia dwojki czyli 1,2,4,8,16,32,64,128,256,...... w tym przykladzie 2 jest podnoszone do potegi
zauwaz ze wszystkie te dane trzymasz w bazie np. w typie int. int w mysql ma chyba 4 bajty wiec co za tym idzie mozesz 32 rozne opcje tam przetrzymywac i to nie tylko dla tej widocznosci mozesz przeciez np. zrobic wylaczenie konta define('ACCOUNT_DISABLE', 16); // czyli 2^5 i przy logowaniu sprawdzac czy czasem nie ma bitu ustawionego dotyczacego wylaczenia konta i zalogowac albo nie Ten post edytował heaven 11.02.2008, 19:53:57 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
sorka małe przeoczenie
![]() Mam pytanie co do sposobu zmiany wartości ukryj/pokaż: Cytat //Jak chcesz zmienic zeby nazwisko bylo ukryte piszesz option &= !NAME_VISIBILITY; // i zapisujesz to nowe option do bazy a najlepiej zobic to bezposrednio przez zapytanie sql 'UPDATE users SET option = option & !'.NAME_VISIBILITY.' WHERE user_id=......' //jesli chcesz zmienic zeby sie numer gg pokazywal to tak: option |= GG_VISIBILITY; // i zapisujesz to nowe option do bazy lub od razu zmienic zapytaniem
kolejno wyświetla mi się 0001001, 0, 4, a nie wartości binarne po zmianach. Ten post edytował szczypior 11.02.2008, 20:01:10 -------------------- Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl |
|
|
![]()
Post
#9
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
spojrz jeszcze raz na moja poprzednia odpowiedz. poprawilem tam juz bo nie zauwazylem ze zapisales bitu jako string
//$option = "0001001"; // tu tez byl blad!!!! $option = 2^0 | 2^3; czyli liczba 9 a bitowo 9 to 1001
Ten post edytował heaven 11.02.2008, 20:08:01 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 98 Pomógł: 0 Dołączył: 5.02.2007 Ostrzeżenie: (0%) ![]() ![]() |
żeby sprawdzić co wyświetlić a co nie przy użyciu
$option musi mieć wartość w postaci binarnej (w takiej postaci mam przechowywać w bazie, tak?) ale żeby później zmienić poszczególne bity muszę jak przerobić na dziesiętną, potem znów na binarną i do bazy wrzucić? -------------------- Pytania i odpowiedzi na każdy temat - ZapytajSie.pl
Darmowe aliasy i liczniki odwiedzin - RFV.pl |
|
|
![]()
Post
#11
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
nie!
option to jest pewna liczba ale ty o niej tylko myslisz binarnie. W bazie przechowujesz ja jako liczbe (int) i pozniej robisz na niej dzialania binarne ale dalej to jest liczba. nic nie konwertujesz. Ciebie jako tako nie interesuje jaka to jest liczba tylko jakie bity sa w niej poustawiane. Wydaje mi sie ze dosc obszernie opisalem problem wiec jesli jeszcze czegos do konca nie rozumiesz to zapraszam na gg (w prifilu jest widoczne) |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
Grupa: Nieautoryzowani Postów: 92 Pomógł: 15 Dołączył: 21.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
masz racje
![]() przy okazji okazalo sie ze jest duzo wiecej bledow :/ (negator bitowy w php to ~ a nie !)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.06.2025 - 08:56 |