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ć):
<?php require_once "../polacz.php"; $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name); $polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); { echo '<form action="test2.php" method="post"> Dodajesz komentarz jako: <b>'.$_SESSION['user'].'</b><br/> <textarea name="tresc" cols="50" rows="10"></textarea><br/> <input type="submit" value="Wyślij komentarz"></form> </form>'; } else { } $komentarze = @$polaczenie->query("SELECT * FROM komentarze ORDER BY id ASC"); while($pokaz = mysqli_fetch_array($komentarze)) { } $polaczenie->close(); ?>
I jeszcze plik test2.php który przetwarza te dane:
<?php require_once "../polacz.php"; $polaczenie = @new mysqli($host, $db_user, $db_password, $db_name); $polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'"); $nick = $_SESSION['user']; $tresc = $_POST['tresc']; } else { $dodaj = "INSERT INTO cms.komentarze (id,data,user,komentarz) VALUES ('', now(), '$nick', '$tresc')"; if($polaczenie->query($dodaj) == TRUE) { } else { } } $polaczenie->close(); ?>
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
