Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Parę skryptów do konserwacji
Raven1122
post 15.02.2012, 14:25:41
Post #1





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Witam, przez ostatnie parę dni wzięła mnie wielka ochota na napisanie takich skryptów jak:
Wyświetlanie ilości zarejestrowanych użytkowników(Działa),
Wyświetlanie ilości użytkowników online (Działa lecz wymaga konserwacji, objaśnie później),
Wyświetlanie ilości gości na stronie ( Nie działa ),
Wyświetlanie wszystkich miesięcy przed aktualnym ( Nie działa, i nie mam idei w jaki sposób to zrobić ),

Czas na objaśnienia :
Wyświetlanie ilości użytkowników online:
Kod:
  1. <?php
  2. $old = date('H:i:s',time()-3*60);
  3. $now = date('H:i:s',time());
  4. $login = $_SESSION['login'];
  5. mysql_connect('xxx', 'xxx', 'xxx') or die("Nie można sie połączyć");
  6. mysql_select_db(xxx) or die("Baza danych nie istnieje");
  7. if(isset($_SESSION['loged'])){
  8. $sql = "UPDATE xxx SET online = '$now' WHERE login = '$login'";
  9. $query = mysql_query($sql);
  10. }
  11.  
  12. /* Liczymy tych ktorzy zostali zapisani w ciagu ostatnich 3 minut */
  13. $sql = "SELECT * FROM xxx WHERE xxx > '$old'";
  14. $query = mysql_query($sql);
  15.  
  16. /* i wyswietlamy ich liczbe na ekranie */
  17. $user = mysql_num_rows($query);

Jakie problemy tutaj? Jeszcze wczoraj myślałem, że wszystko jest ok, ale dziś rano wchodzę na strone i patrzę 12 na 13 zarejestrowanych jest online, więc już wiedziałem, że coś jest nie tak, ponieważ gdy się zalogowałem nie inkrementowało liczby online. Proszę o pomoc smile.gif

Wyświetlanie ilości użytkowników online:
Kod:
  1.  
  2. else{
  3. $ip = $_SERVER['REMOTE_ADDR'];;
  4. $sql = "SELECT * FROM xxx WHERE ip = '$ip'";
  5. $query = mysql_query($sql);
  6. if(mysql_num_rows($query) == 0){
  7.  
  8. $sql = "INSERT INTO xxx(ip, time)" .
  9. "VALUES($ip, $now)";
  10. }
  11. }
  12.  
  13. //Guest
  14. $query = mysql_query($sql);
  15. $sql = "SELECT COUNT(*) FROM xxx WHERE time > '$old'";
  16. $query = mysql_query($sql);
  17. $row = mysql_fetch_array($query);
  18. $guest = $row['COUNT(*)'];


Do bazy danych nie dodaja sie wogole wyniki ( jest to klauzula else z wczesniejszego, czyli ile uzytkownikow online) i zawsze jest rowne 0 nawet gdy sa goscie

Wyswietlanie miesięcy wszystkich przed aktalnym:
Kod, bynajmniej to co probowalem zrobic:
  1. $month = date(n);
  2. $wyswietlile = $month - 1;
  3. $year = date(Y);
  4. //Ustalanie wyświetlonej nazwy miesiąca
  5. $i = 0;
  6. while($i < $month){
  7. if($month = 1){ echo("Styczeń");}
  8. if($month = 2){ echo("Luty");}
  9. if($month = 3){ echo("Marzec");}
  10. if($month = 4){ echo("Kwieceń");}
  11. if($month = 5){ echo("Maj");}
  12. if($month = 6){ echo("Czerwiec");}
  13. if($month = 7){ echo("Lipiec");}
  14. if($month = 8){ echo("Sierpień");}
  15. if($month = 9){ echo("Wrzesień");}
  16. if($month = 10){ echo("Pażdziernik");}
  17. if($month = 11){ echo("Listopad");}
  18. if($month = 12){ echo("Grudzień");}
  19. }

Nie wiem czy cokolwiek dobrze zrobilem, ale bardzo prosze o pomoc, z gory dziekuje, i daje pomogl za kazda pomoc

Ten post edytował Raven1122 15.02.2012, 14:26:16
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 14:30:03
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale pole z czasem logowania ma być DATE_TIME a nie TIME. Co ci tylko po czasie? Data też ma sie zgadzać, wziawszy sczegolnie pod uwagę fakt, jaki ty warunek dajesz.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 14:34:29
Post #3





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Dzieki Nospor, dziala smile.gif teraz pozostale 2, czekam na pomoc
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 14:38:47
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




if($month = 1)
Odróżniaj == od =
Czemu $month porównujesz? Przecież to $i się zmienia.... myśl troche.
No i zapomniałeś o zwiększaniu o jeden $i


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 14:41:16
Post #5





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


  1. <?php
  2. function archiwum(){
  3. $month = date(n);
  4. $wyswietlile = $month - 1;
  5. $year = date(Y);
  6. //Ustalanie wyświetlonej nazwy miesiąca
  7. $i = 0;
  8. while($i < $month){
  9. if($i == 1){ echo("Styczeń");}
  10. if($i == 2){ echo("Luty");}
  11. if($i == 3){ echo("Marzec");}
  12. if($i == 4){ echo("Kwieceń");}
  13. if($i == 5){ echo("Maj");}
  14. if($i == 6){ echo("Czerwiec");}
  15. if($i == 7){ echo("Lipiec");}
  16. if($i == 8){ echo("Sierpień");}
  17. if($i == 9){ echo("Wrzesień");}
  18. if($i == 10){ echo("Pażdziernik");}
  19. if($i == 11){ echo("Listopad");}
  20. if($i == 12){ echo("Grudzień");}
  21. $i++;
  22. }

Cos takiego?
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 14:43:18
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A działa? To tak.
Nie działa? To nie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 14:51:13
Post #7





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Jak narazie dziala, nie wiadomo jak to bedzie w marcu, jesczze pozostal ten 1 z goscmi smile.gif
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 14:54:54
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie wiesz jak będzie w marcu? Nie wiesz jak będzie we wrześniu? No to masz kurna problem niesamowity....

Cieżko zamiast:
$month = date(n);
dać:
$month = 9;
?
I już bedziesz wiedział jak to dla września będzie wyglądało.
Ja wiem, ja rozumiem, jesteś początkujący. No ale bez przesady.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 15:10:27
Post #9





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Zdarzylem rozwiacac to zanim napisales tongue.gif
Teraz jeszcze tylko ten skrypt pokazujacy ile gosci i bede bardzo wdzieczny smile.gif

Pozostal jeszcze ten kod:
  1. else{
  2. $ip = $_SERVER['REMOTE_ADDR'];;
  3. $sql = "SELECT * FROM xxx WHERE ip = '$ip'";
  4. $query = mysql_query($sql);
  5. if(mysql_num_rows($query) == 0){
  6.  
  7. $sql = "INSERT INTO xxx(ip, time)" .
  8. "VALUES($ip, $now)";
  9. }
  10. }
  11.  
  12. //Guest
  13. $query = mysql_query($sql);
  14. $sql = "SELECT COUNT(*) FROM xxx WHERE time > '$old'";
  15. $query = mysql_query($sql);
  16. $row = mysql_fetch_array($query);
  17. $guest = $row['COUNT(*)'];

ktos chetny?
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 15:11:50
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$sql = "INSERT INTO xxx(ip, time)" .
"VALUES($ip, $now)";
Ale wiesz o tym, że oprócz napisania zapytania trzeba je jeszcze wykonaćquestionmark.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 15:15:19
Post #11





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


jest na dole po komentarzu //Guest

No to jest tutaj: $sql = "INSERT INTO xxx(ip, time)" .
"VALUES($ip, $now)";
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 15:15:38
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




To rób to od razu nie milion linii niżej. To niczemu nie służy.

Zapoznaj sie z tym tematem i do niego zastosuj. No nie bedziemy ci każdej pierduły co chwile wyjasniac
Temat: Jak poprawnie zada pytanie


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 15:24:25
Post #13





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Poprawilem, ale dalej nie dziala
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 15:25:13
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nie chce mi się wierzyc, że przez pare minut zastosowales sie do tego tematu, co cie odeslalem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 15:29:52
Post #15





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Nie, nie przenioslem tylko mysql_query z dolu do gory
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 15:33:27
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




A ja chyba prosiłem Cię jeszcze, byś się zastosował do tematu. Masz tam kupę wskazówek, których nie chce mi się teraz specjalnie dla Ciebie ponownie wypisywać. Czy tak trudno to zrobic? Czy naprawdę trzeba aż w trzech postach o to prosić?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Raven1122
post 15.02.2012, 15:51:30
Post #17





Grupa: Zarejestrowani
Postów: 369
Pomógł: 2
Dołączył: 1.11.2010

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


Przeczytalem, zrozumialem, wynioslem cos z lekcji:
dodalem mysql_error() i teraz mam blad:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.134.12, 15:49:56)' at line 1
Go to the top of the page
+Quote Post
nospor
post 15.02.2012, 15:55:39
Post #18





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dziękuję. Ale było tam też napisane, byś wyświetlał wygenerowane zapytanie. Jakbyś to zrobił, to byś zobaczył że zapomniałeś IP objąć apostrofem.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 14.08.2025 - 12:51