1.
Cytat
(...)SELECT login.gg FROM priv, userdata(...)
A co to jest login.id? Przecież nie masz tabeli login w bazie... Ja na miejscu parsera bym wymiękł i załamał ręce. Pobierasz wartość pola gg tabeli login, a do zapytania nie angażujesz wcale takiej tabeli (domyślam się, że takowa w ogóle nie istnieje)...
2. Po co Ci w tabeli priv kolumna login, skoro masz id_priv?
3. Stosujesz w ogóle takie funkcje jak
mysql_error" title="Zobacz w manualu PHP" target="_manual?
4. A zwijasz do tabeli wynik SQL? (
mysql_query" title="Zobacz w manualu PHP" target="_manual,
mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual)
Nie wyglądasz może na aż tak początkującego uzytkownika, żeby nie pamiętać o wykonaniu zapytania (

), ale rózne przypadki już się zdarzały, więc jak coś to wybacz

A rozwiązanie zaproponuję Ci takie:
userdata:
`id` int(11) NOT NULL AUTO_INCREMENT UNSIGNED PRIMARY KEY,
`login` varchar(15) NOT NULL,
`gg` varchar(40) NOT NULL
priv:
`id_priv` int(11) NOT NULL AUTO_INCREMENT UNSIGNED PRIMARY KEY,
`gg` enum('0','1') NOT NULL
Zwróć uwagę na tabelę priv i typ pola gg. To najlepsze rozwiązanie. Wtedy, gdy chcesz pobrać gg użytkownika w zależności od tego, czy jest ono jawne, czy tajne, robisz:
SELECT userdata.gg FROM priv, userdata WHERE priv.gg='0' AND userdata.id='$userdata' AND userdata.id=userdata.id_priv;
Takie zapytanie zwróci wynik tylko wtedy, gdy user o id takim jak zawartość zmiennej $userdata ma włączoną jawność gg (wartość pola priv.gg 0), w przeciwnym wypadku wynik będzie pusty. Wtedy możesz to sprawdzic i w takim przypadku wyświetlić wynik 'ukryte' albo coś w tym rodzaju