Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


kulczycki
Napisane: 12.12.2011, 19:43:02





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

serialize + gzip => odpakowanie -> unserialize. W podobny sposób serializowałem obiekty pakietów(socketów) w C# do zapisu do pliku
  Forum: Hydepark · Podgląd postu: #921908 · Odpowiedzi: 7 · Wyświetleń: 798

kulczycki
Napisane: 28.01.2011, 22:31:47





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

http://www.php.net/manual/en/function.preg-grep.php
  Forum: PHP · Podgląd postu: #831770 · Odpowiedzi: 1 · Wyświetleń: 415

kulczycki
Napisane: 28.01.2011, 22:30:04





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

  1. UPDATE account SET STATUS = 'OK' WHERE id IN(SELECT account_id FROM bany WHERE data_zdjecia <= '$dzis');
  2. DELETE FROM bany WHERE data_zdjecia <= '$dzis';


bez pierdół winksmiley.jpg
  Forum: PHP · Podgląd postu: #831767 · Odpowiedzi: 4 · Wyświetleń: 515

kulczycki
Napisane: 27.01.2011, 22:14:00





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

AS - jako. Czyli tymczasowo nazywasz tabele rank - prościej już wytłumaczyć nie mogę.

LEFT JOIN - dołącz, ranking2 as rank tabele ranking2 jako rank2, ON - tutaj pomyśl sobie że on = where bo też inaczej nie potrafię.

CZYLI:

LEFT JOIN ranking2 as rank2 ON(rank1.playerid = rank2.playerid).

Cyli dołącz kolumny z tabeli ranking2 jeśli playerid z tabeli ranking1 jest równy playerid z tabeli ranking2.

Inaczej:
Leci sobie petla w ranking1 i dolacza do każdego rekordu odpowiedni rekord z ranking2 jeśli jest to możliwe.

Już prościej nie potrafię, i napewno źle Ci to wytłumaczyłem ale mam nadzieję że trafi teraz to.
  Forum: PHP · Podgląd postu: #831417 · Odpowiedzi: 12 · Wyświetleń: 861

kulczycki
Napisane: 27.01.2011, 18:58:57





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

drzewo na podstawie parent (ip).

np.

Standardowe by było
id(1) parent(0) position(1) PC
id(2) parent(1.2) position(2) Laptopy
id(3) parent(1.2) position(3) Standardowe
id(4) parent(1.2) position(3) Niestandardowe.

Postion tylko dałem bo pamiętam że później łatwiej query budować. Position oznacza miejscu ID danej kategorii w parent.
  1. SELECT * FROM `bug_categories` WHERE CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(`parent`, '.', :position), '.', -1) AS UNSIGNED) = :catId


Pobiera listę subkategorii dla aktualnej kategorii. Później tylko przy wyświetlaniu musisz sprawdzić czy ostatnia pozycja w parent jest równa aktualnej pozycji - wtedy dajesz do wyświetlenia. Dużo bajerów można tak robić, jest szybsze o wiele od rekurencyjnej strukturze.

Ogólnie będziesz musiał pomyśleć co i jak, jak załapiesz o co chodzi sam zrozumiesz jak napisać wszystko. winksmiley.jpg

Dla przykładu ale już nie będę opisywał całego działania kodu ( a całej klasy Ci nie dam):
  1. $parent = explode('.', $row['parent']);
  2. $parent_last = count($parent) - 1;
  3. if($parent[$parent_last] == $catId)
  4. {
  5. $catSub[$row['id']] = $row;
  6. $catSub[$row['id']]['numSubCat'] = 0;
  7. $catSub[$row['id']]['tickets'] = $ticket_count;
  8. $catSub[$row['id']]['tickets_p'] = $ticket_p;
  9. }else{
  10. $cat[$id]['numSubCat']++;
  11. $cat[$id]['tickets'] += $ticket_count;
  12. $cat[$id]['tickets_p'] += $ticket_p;
  13. if(isset($catSub[$parent[$row['position']-2]]))
  14. {
  15. $catSub[$parent[$row['position']-2]]['numSubCat']++;
  16. $catSub[$parent[$row['position']-2]]['tickets'] += $ticket_count;
  17. $catSub[$parent[$row['position']-2]]['tickets_p'] += $ticket_p;
  18. }
  19. }
  Forum: PHP · Podgląd postu: #831340 · Odpowiedzi: 3 · Wyświetleń: 1 289

kulczycki
Napisane: 30.12.2010, 16:52:07





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

Pętla - nie wiem czemu myślisz że to złe. Dla takich choćby rzeczy wymyślono pętle. Lub zrób tak

  1. INSERT INTO `nazwa_bazy`(`kolumny`) VALUES
  2. (1),
  3. (2),
  4. (3),
  5. (4);

- sposób jeśli naprawdę zależy CI na jednym query.

1,2,3,4 budujesz i tak i siak pętlą.
  Forum: Przedszkole · Podgląd postu: #822018 · Odpowiedzi: 1 · Wyświetleń: 346

kulczycki
Napisane: 30.12.2010, 00:10:51





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

Co do 1 rozwiązania dałem Ci przykładowo - zawsze można rozwinąć. Co do drugiego. Session_key i dane o sesji trzymasz w tabeli w bazie. Wiec jesli ktoś się loguje na usera który ma aktywną sesje to się nie zaloguje, lub po prostu wywala tą osobę/połączenie które ma aktywną sesje.

account:
acc_id
username

session:
acc_id
session_key
session_time
session_ip
session_browser

Teraz mniej więcej rozumiesz ?

Lockaccount się stosuje jako dodatek, i każdy klient może sam sobie to nałożyć (jeśli ma np stałe ip i wie że jest sam w sieci). Jeśli ktoś jest w sieci osiedlowej nie po blokuje nikogo bo przecież mają te same ip.
  Forum: PHP · Podgląd postu: #821836 · Odpowiedzi: 39 · Wyświetleń: 2 570

kulczycki
Napisane: 29.12.2010, 17:26:59





Grupa: Zarejestrowani
Postów: 76
Dołączył: 10.11.2010
Skąd: Polska,Katowice

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

  1. //sprawdzam którzy użytkownicy są nieaktywni dłużej niż 15 minut i przypisuje im status 0
  2. $sql2 = "SELECT `id_user` FROM `tabela` WHERE `last_active` < '$time_minus_15_minut' AND `status_online` = '1'";
  3. $wynik2 = @mysql_query($sql2);
  4.  
  5. $liczba_do_wylogowania = mysql_num_rows($wynik2); // ile osób trzeba wylogować
  6.  
  7. if ($liczba_do_wylogowania > 0) {
  8.  
  9. while ($rek2 = mysql_fetch_array($wynik2)) {
  10. $id_user2 = $rek2['id_user'];
  11.  
  12. //aktualizuje status i godzine ostatniej wizyty wylogowanych osób
  13. $sql3 = "UPDATE `tabela` SET `last_visit` = '$now_time', `status_online` = '0' WHERE `id_user` = '$id_user2'";
  14. @mysql_query($sql3);
  15. }
  16. }


To nie jest potrzebne, a raczej zbędne. Robisz 2 razy to samo. Bo Update samo w sobie też ma SELECT podczas WHERE.
Nie rozumiem po co ustawiać aktualny czas dla osób który już są wylogowane.

  1. UPDATE `tabela` SET `status_online` = 0 WHERE `last_active` <= $time_minus_15_minut AND `status_online` = 1;

Jeśli status_online jest int-em to nie używaj cudzysłowa. Nie potrzebnie mysql będzie to konwertował. To samo tyczy się czasu w UNIX
  Forum: PHP · Podgląd postu: #821680 · Odpowiedzi: 8 · Wyświetleń: 838


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 22.09.2018 - 07:08