Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Statystyki błąd.
ArekJ
post 16.10.2008, 14:16:13
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Witam.

Mam skrypt statystyk. Jedna część jest odpowiedzialna za wyświetlanie ile osób się zarejestrowało, a druga za wyświetlanie ostatnio zarejestrowanej osoby. I wtej pierwszej części jest błąd, ponieważ zawsze wyświetla 1 :/



Skrypt:

  1. <?php
  2.  
  3. require_once 'konfiguracja.php';
  4.  
  5. $ilosc=mysql_query('SELECT id FROM uzytkownik WHERE 1=1');
  6. $liczba=mysql_num_rows($ilosc);
  7.  
  8. $najnowszy=mysql_fetch_array(mysql_query("SELECT * FROM uzytkownik ORDER BY id DESC LIMIT 1"));
  9.  
  10. ?>




A tak wyświetlam:

  1. Mamy <?php echo $liczba; ?> użytkowników!
  2. <br />
  3. Ostatnio zarejestrował się: <?php echo $najnowszy['login']; ?>


Wie ktoś gdzie jest błąd?

Ten post edytował ArekJ 16.10.2008, 14:16:36


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

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
webdice
post 16.10.2008, 14:25:02
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Bo takie zapytanie zwróci Ci zawsze jeden rekord. Zrób tak:

  1. <?php
  2. $ilosc=mysql_query('SELECT id FROM uzytkownik');
  3. ?>


A najlepiej skorzystać z funkcji COUNT którą oferuje MySQL.
Go to the top of the page
+Quote Post
ArekJ
post 16.10.2008, 14:29:01
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Teraz zapytanie wygląda tak:

  1. <?php
  2.  
  3. require_once 'konfiguracja.php';
  4.  
  5. $ilosc=mysql_query('SELECT id FROM uzytkownik');
  6. $liczba=mysql_num_rows($ilosc);
  7.  
  8. $najnowszy=mysql_fetch_array(mysql_query("SELECT * FROM uzytkownik ORDER BY id DESC LIMIT 1"));
  9.  
  10. ?>

I ndala nie działa sad.gif A nie wiem jak za pomocą tej drugij funkcji zbudować zapytanie...

Ten post edytował ArekJ 16.10.2008, 14:29:19


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

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
Strzałek
post 16.10.2008, 14:34:08
Post #4





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


fetch_array zwraca Ci tablicę z wierszami, jako że masz LIMIT 1 więc dostaniesz jeden wiersz czyli echo robisz tak:

  1. Ostatnio zarejestrował się: <?php echo $najnowszy[0]['login']; ?>


--------------------
Go to the top of the page
+Quote Post
ArekJ
post 16.10.2008, 14:36:59
Post #5





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Ej, ale tu nie chodzi o ostatnio zarejestrowaną osobe, tylko o ile osób się zarejestrowało winksmiley.jpg


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

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
nexis
post 16.10.2008, 14:40:11
Post #6





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


  1. <?php
  2. $query  = "SELECT COUNT(`id`) FROM `uzytkownik`";
  3. $query  = mysql_query($query) or exit(mysql_error());
  4. $result = mysql_fetch_row($query);
  5. $count  = $result[0];
  6. echo $count;
  7. ?>


Ten post edytował nexis 16.10.2008, 14:41:39


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
Strzałek
post 16.10.2008, 14:40:44
Post #7





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


  1. <?php
  2. $ilosc=mysql_fetch_array(mysql_query("SELECT COUNT(*) as count FROM uzytkownik"));
  3. echo $ilosc[0]['count'];
  4. ?>


Dodano:: Ehh, nexis szybszy winksmiley.jpg

Ten post edytował Strzałek 16.10.2008, 14:41:30


--------------------
Go to the top of the page
+Quote Post
ArekJ
post 16.10.2008, 14:44:38
Post #8





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Dzięki za szybką pomoc smile.gif Mam tylko pytanie, który skrypt jest optymalniejszy(który mniej obciąża serwer) wiem, że będą to milionowe sekundy, ale zawsze coś winksmiley.jpg


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

"Do bramy, bo pada deszcz
Gdy zaćpiesz przejdzie dreszcz
I wróci, wróci tęcza barw
I pęknie twój wrogi świat" R. Riedel
Go to the top of the page
+Quote Post
webdice
post 16.10.2008, 14:49:11
Post #9


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Oczywiście funkcja count.
Go to the top of the page
+Quote Post
Strzałek
post 16.10.2008, 14:51:08
Post #10





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


Nasze kody są właściwie takie same, mój jest krótszy, mniej zmiennych więc i szybszy. Ale nie popadajmy w paranoje.

Natomiast jeżeli chodzi o SQL - przy dużych ilościach danych COUNT może być zabójczy. Jednak zrobienie zapytania count jest szybsze niż SELECTa i późniejszego mysql_num_rows

Ten post edytował Strzałek 16.10.2008, 14:52:04


--------------------
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: 24.04.2024 - 15:12