Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.07.2012 Ostrzeżenie: (0%)
|
Witam.
Na wstępie chciałbym podkreślić, że dopiero raczkuję w PHP, ale staram się pisać coś swojego, ambitnego, dlatego nie bijcie mnie za jakość kodu jaki ujrzycie niżej : / A więc nie owijając w bawełnę - stworzyłem system komentarzy umożliwiający dodawanie wpisów dla zalogowanych na stronie użytkowników. No i użytkownikiem jest admin i test. Admin ma prawa administratora, a test nie ma. Chciałbym, aby w komentarzach nick administratora był wyróżniony (w sensie jakieś podkreślenie, albo napis obok [ADMIN]), ale prawdę mówiąc to utkwiłem w martwym punkcie i nie mam pojęcia już jak się za to zabrać, ponieważ próbowałem coś kombinować, ale bezskutecznie. Podejrzewam że będzie to problem z samym MySQL, ale przezorny zawsze ubezpieczony, więc dodałem do tego wątku także PHP. W phpmyadmin mam bazę danych nazwaną "cms", a w niej tabele "uzytkownicy" i "komentarze". Struktura tabeli uzytkownicy: id | user | password | email | admin No i odpowiednio: 1 | admin | [haslo] | email@mail.local | 1 2 | test | [haslo] | email@mail.local | 0 Struktura tabeli komentarze: id | data | user | komentarz No i tutaj wiadomo co jest czym, więc nie będę przedstawiał. Jeśli dodaję komentarz z konta admin to wtedy w 'user' mam 'admin', natomiast jeśli z konta test to mam 'test'. No i mam taki kod PHP do tego (wklejam cały plik, bo nigdy nie wiadomo co może się przydać):
I jeszcze plik test2.php który przetwarza te dane:
No i jak widać - informację o aktualnie zalogowanym użytkowniku przetrzymuję w sesji i podczas wpisywania komentarza zamiast wklepywać nazwę użytkownika, jest ona z tej sesji odczytywana i wpisywana do bazy danych. No i na koniec powtórzę jeszcze raz - jak mógłbym wyróżnić w takich wpisach później podczas czytania komentarzy nick użytkownika, który ma w bazie danych wartość 'admin' ustawioną na '1' (czyli jest po prostu administratorem)? Z góry dziękuję za wszelką pomoc (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 15.07.2012 Ostrzeżenie: (0%)
|
Właśnie, że nie wiadomo, a to ważne. Bo albu w user masz klucz obcy i musisz zrobić JOIN z tabelą użytkownicy, albo nie masz klucza obcego to musisz go utworzyć i też zrobić JOIN z tabelą użytkownicy. No to więc tak: Struktura tabeli komentarze: id | data | user | komentarz Jak pisałem w pierwszym poście i brak tu kluczy obcych. ID jest autoinkrementowany (bo określenie id aktualnego komentarza, a nie usera), data jest pobierana z wartości 'now()' z test2.php i wpisywana do bazy, user jest wpisywany na zasadzie sesji, co można zaobserwować w linijkach: $nick = $_SESSION['user']; I później zmienna ta z użytkownikiem zapisanym w sesji jest dodawana do bazy danych: $dodaj = "INSERT INTO cms.komentarze (id,data,user,komentarz) VALUES ('', now(), '$nick', '$tresc')"; A treść komentarza pobierana jest z $_POST Więc jak widać - kluczów obcych tu nie mam. Więc mam dodać klucz obcy na wartość 'user' czy może utworzyć osobną kolumnę do tego? Bo próbowałem pobrać już zmienną 'admin' z tabeli 'uzytkownicy' i wpisać ją w nowej kolumnie w tabeli 'komentarze', ale z miernym skutkiem, bo dodałem później do tego wszystkiego JOIN i niby działało poprawnie, ale chyba coś źle napisałem, bo jeśli admin wstawił komentarz to owszem - jego nick był wyróżniony, ale automatycznie były wyróżnione także pozostałe, nawet te, które praw administracyjnych nie posiadają. I dlatego piszę, że utkwiłem w martwym punkcie. Ten post edytował aroox 7.10.2015, 12:02:59 |
|
|
|
aroox [PHP][MySQL] System komentarzy - wyróżnienie admina 7.10.2015, 11:46:39
Damonsson Cytat(aroox @ 7.10.2015, 12:46:39 ) N... 7.10.2015, 11:52:35
Damonsson A więc tak:
test2.php#11
[PHP] pobierz, plaintext... 7.10.2015, 12:14:02
aroox Super, działa świetnie!
Dzięki wielkie 7.10.2015, 12:27:11 ![]() ![]() |
|
Aktualny czas: 13.03.2026 - 02:38 |