Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Ostatnio odwiedziłeś użytkownika - problem
buddha
post 14.10.2017, 22:07:32
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

Ostrzeżenie: (0%)
-----


Cześć,

Kombinuje z przerobieniem funkcji która pokazuje użytkownikowi "kto cię ostatnio odwiedził"
na funkcje "ostatnio odwiedziłeś". jest to wykonalne edytując tą funkcje?

  1. function getMyVisitsUsers($uid) {
  2.  
  3. global $mysqli,$sm;
  4.  
  5. $search = '';
  6.  
  7. $count = $limit;
  8.  
  9. $time_now = time()-300;
  10.  
  11. $query2 = $mysqli->query("SELECT u2,timeago FROM users_visits where u1 = '$uid' and u2 <> '".$sm['user']['id']."' order by timeago desc limit 50");
  12.  
  13. $mysqli->query("UPDATE users_visits SET notification = 1 where u1 = '$uid'");
  14.  
  15. if($query2->num_rows > 0){
  16.  
  17. while($result2 = $query2->fetch_object()){
  18.  
  19. getUserInfo($result2->u2,6);
  20.  
  21. $time = $result2->timeago;
  22.  
  23. $search.='<li>
  24.  
  25. <a href="#" class="photo" data-back-photo="1" data-src="'.$sm['search']['profile_photo'].'" onClick="goToProfile('.$sm['search']['id'].')"></a>
  26.  
  27. </li>';
  28.  
  29. }
  30.  
  31. }
  32.  
  33.  
  34.  
  35. return $search;
  36.  
  37. }
Go to the top of the page
+Quote Post
markonix
post 14.10.2017, 23:10:12
Post #2





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

Ostrzeżenie: (0%)
-----


Skoro masz w tabeli informacje o tym że Z odwiedzili X i Y to z prostej logiki też wiesz, że na liście odwiedzonych przez X jest między innymi Z...
Co do samej funkcji jest napisana beznadziejnie.


--------------------
Go to the top of the page
+Quote Post
buddha
post 15.10.2017, 00:36:02
Post #3





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

Ostrzeżenie: (0%)
-----


Czyli muszę zmienić tak?

  1. $query2 = $mysqli->query("SELECT u1,timeago FROM users_visits where u2 = '$uid' and u1 <> '".$sm['user']['id']."' order by timeago desc limit 50");
  2.  
  3. $mysqli->query("UPDATE users_visits SET notification = 1 where u2 = '$uid'");


Jestem kompletnie zielony. Uczę się na bieżąco przerabiając gotowca.
Go to the top of the page
+Quote Post
Niree
post 15.10.2017, 01:54:50
Post #4





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


Nie znamy struktury bazy, nie wiadomo o co chodzi. Jak notujesz wizytę?
Go to the top of the page
+Quote Post
Rysh
post 15.10.2017, 12:01:54
Post #5





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Jeśli jesteś kompletnie zielony to może zleć to komuś kto się na tym zna?


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 15.10.2017, 12:21:49
Post #6





Grupa: Zarejestrowani
Postów: 1 836
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Zamiast przerabiać poprawną funkcję, to stwórz nową, a potem użyć w miejsce gdzie istniała poprzednia.
Zamiast edytować/modyfikować tablicę w bazie, stwórz nową na potrzeby twojego małego projektu.

Jak coś popsujesz, to przynajmniej skutki będą mniej bolesne, a błędy bardziej widoczne.
Go to the top of the page
+Quote Post
buddha
post 15.10.2017, 14:41:53
Post #7





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 7.09.2017

Ostrzeżenie: (0%)
-----


@Tomplus masz racje, tylko problem tkwi w tym że nie potrafię napisać
prawidłowej funkcji.

Próbowałem już różnych modyfikacji kodu, niestety na dobre to nie wychodzi.
Go to the top of the page
+Quote Post
Tomplus
post 15.10.2017, 19:18:53
Post #8





Grupa: Zarejestrowani
Postów: 1 836
Pomógł: 225
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Wychodzi na to że masz braki w podstawach.

Ale przeanalizuj sobie co potrzebujesz aby stworzyć nową funkcjonalność?

Podpowiem, jeżeli chodzi o Ostatnio odwiedziłeś, to potrzebujesz informację:
- o uzytkowniku czyli $uid
- miejsca które ostatnio odwiedził

Nie znam struktury kodu strony, ale pewnie nie będzie problemu odczytać aktualną pozycję użytkownika (w razie czego pozostają wartości globalne _SERVER)

Potem tworzysz strukturę nowej tabeli:
uid, pageVisit, timeVisit

Potem tworzysz zapytanie MySQL gdzie zamiast UPDATE, tworzysz REPLACE, wtedy funkcja utworzy rekord gdy użytkownik jest pierwszy raz, a zastąpi go gdy taki rekord już istnieje - przyczym uid i pageVisit muszą być ustawione jako unikalne.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.04.2024 - 16:17