• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed komentarze-php

Cloud VPS
0 głosów
766 wizyt
pytanie zadane 12 grudnia 2015 w PHP przez hiper007 Stary wyjadacz (11,270 p.)
zamknięte 9 grudnia 2016 przez hiper007
Witam mam pytanko ;) Tworze komentarze na stronie dla zalogowanych uzytkownikow;) mam dwie tabele w phpmyadmin ;) jedna uzytkownicy a druga komentarze. i Nie moge rozgrysc jednego problemu ;) chce zrobic tak azeby po zalogowaniu i dodaniu komentarza w momencie jego wyswieltenia pojawil sie np. uzytkownik: koral123 (jest to login złuzący do zalogowania sie)dodal komentarz..... mam trzy pola nick mail i komentarz przesylam dane metoda post do osobnego pliku ktory sprawdza i dodaje do bazy mysql a nastepnie plik gdzie jest formularz sprawdza czy sa jakies kometarze i je wyswietla na stronie ;) ale chce zeby sie wyswietlil login uzytkownika ten ktorzym sie loguje ;) jakis pomysl?? ;)
komentarz zamknięcia: Problem rozwiązany

4 odpowiedzi

0 głosów
odpowiedź 12 grudnia 2015 przez Łukasz R. Użytkownik (700 p.)
wybrane 9 grudnia 2016 przez hiper007
 
Najlepsza

Cześć,

jaką strukturę tych tabel masz?

jeżeli użytkownicy wygląda np.:

uzytkownicy(id_uzytkownik to jes klucz główny, login, ...)

to tabela komentarze powinna zawierać jakieś powiązanie z tabelą użytkowników np.:

komentarze(id_komentarz, tresc, id_uzytkownik - to powinien być klucz obcy)

Następnie wystarczy pobrać dany komentarz i login użytkownika przy pomocy klucza obcego. Mam nadzieję że nie pogmatwałem za bardzo :)

komentarz 12 grudnia 2015 przez hiper007 Stary wyjadacz (11,270 p.)
struktura tabeliuser ( id_uzytkownmika,user,mail,haslo)

tabeli koment (id_komnetarze,nick,mail,tresc,data)

kiedy wybieram akomentarze pisze select*from kament order by id_komentarze desc ;)

i wyswietlas mi sie wszsytko co wpisuje przez formularz czyli np.echo "uzytkownik: 'nick' w dniu 'data' wystawil komenatrz 'tresc'". a chce zeby przy wyslaniu kometarza w miejscu 'nick' pojawil sie login uzytkownika ktory jest zalogowany ktory ukrywa sie w tabeli uzytkownicy w kolumnie 'user' . ;)
komentarz 12 grudnia 2015 przez Łukasz R. Użytkownik (700 p.)
edycja 12 grudnia 2015 przez Łukasz R.

Ok. Jeżeli dobrze wywnioskowałem z tego, co napisałeś do tej pory to:

  1. Tylko zalogowany użytkownik może dodać komentarz (masz zmienną która przetrzymuje jakąś informacje na temat zalogowanego użytkownika?)
  2. Formularz do wstawiania komentarza ma 3 pola:
    • nick
    • mail
    • komentarz
  3. Napisałeś wcześniej "mam trzy pola nick mail i komentarz przesylam dane metoda post do osobnego pliku ktory sprawdza i dodaje do bazy mysql..." - co ten plik sprawdza?

Możesz na przykład zmodyfikować formularz wprowadzania komentarza usuwając pole nick, i przesłać metodą post login użytkownika czyli w Twoim przypadku to co kryje się w polu user w tabeli user. Wtedy w tabeli koment w polu nick zapisze się user. To wszystko pod warunkiem że w polu user może być zapisana tylko unikatowa wartość która nie powtórzy się w całej tabeli. Jeżeli zezwalasz na to aby było kilku takich samych userów posłuż się id_uzytkownika i odpowiednio w tabeli koment w polu nick zapisz id_uztkownika.

Potem w zapytaniu sql wybierasz wszystkie komenty dla użytkownika o danym id...

Poczytaj sobie o relacyjnych bazach danych, głównie o kluczach głównych i obcych, według mnie tam tkwi cała moc relacji tabel. Powodzenia w walce z problemem :)

komentarz 12 grudnia 2015 przez hiper007 Stary wyjadacz (11,270 p.)
jestem juz blisko ;) haha a wiec tak istnieje zmiena sesjna o naziwe zalogowany ktora sprawdza czy dany uzytkownik jest w bazie i wspial dobre haslo i login ;) formularz sprawdza czy nick jest odpowiednio dlugi czy mail istnieje w bazie i wysyla na niego maila z trescia kometarza ktora wystawil uztkownik oraz czy kometarz nie jest dluzy niz ilosc znakow ustawiona w msql jako varchar ;) a wiec ;) zrobilem zmienia sesyjna w pliku gdzie user sie loguje ;) pozniej echo "uzytkownik: 'nick' w dniu 'data' wystawil komenatrz 'tresc'". z 'nick'z mienilem na 'login.' ;) i wszystko dzilaa wyswietla mi sie uzytkownik zalogowany ;) wystawia trzy kometarze ;) wylogowuje sie zmieniam i loguje sie na innego uzytkownika wchodze w komentarze i co ;) okazuje sie ze ten nowo zalogowany wystawil te trzy koemtarze a nie tamten ;) poprostu pokazuje ze komentarze zostaly napisane przez obecnie zalogowanego uzytkownika bez wzgledu na to czy on je napisal czy ktos inny :)
komentarz 12 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Przy każdym komentarzu musisz wyświetlić nick z tabeli z komentarzami, a nie z sesji. Najlepiej gdybyś w tabeli z komentarzami zapisywał jedynie id użytkownika i pobierał nick z tabeli z użytkownikami.
komentarz 15 grudnia 2015 przez hiper007 Stary wyjadacz (11,270 p.)
Witam! przypisyalem id uzytkownica z sesji podczas logowania do tabeli komentarze!

1. tabela uzytkownicy (idu, login , email , pass, klucz)

2. komentarze (idk, tresc, data, idu-klucz obcy)

jak sformulowac zapytanie zeby wyswietlic wszystkie koemntarze z tabeli komentarze i login z tabeli uzytkownicy

np. echo Autor: 'login' dnia 'data' wystawil komentarz: 'tresc';

juz jestem na ostatniej prostej z tymi komentarzami ;)

POZDAWIAM
+1 głos
odpowiedź 12 grudnia 2015 przez writen Nałogowiec (29,060 p.)
Gdybyś się troszkę postarał i pisał swoje posty zgodnie z zasadami języka polskiego, to może od razu bym zrozumiał z czym masz problem. Jeśli swoje skrypty piszesz tak jak te posty, to nie wiem czy jest w ogóle sens ci odpowiadać. Poszanuj może czas użytkowników, którzy starają ci się pomóc.

A teraz tak.

Wiesz czym się charakteryzuje relacyjna baza danych? Poczytaj sobie.

Przy dodawaniu komentarza zapisz id uzytkownika, który go dodał. To id musisz pobrać z sesji, którą tworzysz przy logowaniu.

W formularzu nie twórz pola z nickiem. Po co takie pole? Niepotrzebne,

Przy wyświetlaniu komentarzy pobierz jednym zapytaniem komentarze z tabeli z komentarzami oraz nicki ich autorów z tabeli z użytkownikami. Relacyjna baza, rozumiesz? I po problemie.
0 głosów
odpowiedź 12 grudnia 2015 przez Ivan Maniak (60,650 p.)
Jeżeli dobrze zrozumiałem to masz po prostu problem z dojściem do nicku zalogowanego użytkownika [Tak aby był to nick, którym faktyczne się logował]

Przy logowaniu stwórz sesję np. o nazwie id_user, która będzie przechowywała id użytkownika, następnie przy dodawaniu komentarza sprawdź w bazie danych przez ID użytkownika jaki ma nick.
0 głosów
odpowiedź 12 grudnia 2015 przez Mateusz11 Pasjonat (22,910 p.)
Za duzo emotikonek!

Podobne pytania

0 głosów
0 odpowiedzi 732 wizyt
pytanie zadane 17 marca 2021 w PHP przez mateusz45 Gaduła (3,280 p.)
0 głosów
2 odpowiedzi 790 wizyt
pytanie zadane 16 kwietnia 2021 w SQL, bazy danych przez Oskar123# Użytkownik (730 p.)
0 głosów
0 odpowiedzi 250 wizyt
pytanie zadane 6 maja 2018 w PHP przez tales Nowicjusz (210 p.)

93,457 zapytań

142,452 odpowiedzi

322,722 komentarzy

62,837 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...