Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Aktywność użytkownika i pobieranie z bazy
smrodek11
post
Post #1





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 27.12.2010

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


Pierwszym moim problemem jest to, w jaki sposób monitorować aktywność użytkownika w bazie mysql. Chodzi mi o takie zdarzenia jak daty logowania, wykonywania czynnosci w serwisie itp. Jak mam zrobić tabele w bazie żeby to było najlepiej? Użytkownik mógłby przegladac swoja historię, więc musi być jakoś poukładane. Jedna tabela z wszystkimi zdarzeniami odpada bo za długo by w przyszłości szukało zdarzeń, wiele tabel z jedną dla każdego użytkownika też za bardzo by nie pasowała :/

Drugi problem to zarazem prośba, nie wiem jak zrobić aby na stronie wyświetało się tyle wpisów z bazy (jeden rekord, jeden wpis z data dodania, id i trescia) ile jest rekordów w bazie. Prosiłbym o jakiś przykład tego
Dzięki
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
IceManSpy
post
Post #2





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


1. Po co aż taka historia jest potrzebna? No ale jeśli już jest, to może warto ją ograniczyć do np tygodnia czy miesiąca wstecz. Zależy jeszcze ile masz użytkowników. Pamiętaj, że nie ma nieskończonej liczby zasobów połączeń, więc przy większej ilości może to wszystko działać wolno. Ale do rzeczy, zrób jedną tabelę z indeksami. Po to są bazy danych, aby trzymać dane, wiec kilkanaście tysięcy wierszy to nie problem.

2. Nie rozumiem o co chodzi? Chodzi o pobranie wszystkich danych z bazy i wyświetlenie ich?
Go to the top of the page
+Quote Post
toaspzoo
post
Post #3





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


http://computersun.pl/php_db/mysql/operacj...stron-w_98.html
Go to the top of the page
+Quote Post
smrodek11
post
Post #4





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 27.12.2010

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


Cytat(IceManSpy @ 12.08.2012, 01:26:54 ) *
1. Po co aż taka historia jest potrzebna? No ale jeśli już jest, to może warto ją ograniczyć do np tygodnia czy miesiąca wstecz. Zależy jeszcze ile masz użytkowników. Pamiętaj, że nie ma nieskończonej liczby zasobów połączeń, więc przy większej ilości może to wszystko działać wolno. Ale do rzeczy, zrób jedną tabelę z indeksami. Po to są bazy danych, aby trzymać dane, wiec kilkanaście tysięcy wierszy to nie problem.

2. Nie rozumiem o co chodzi? Chodzi o pobranie wszystkich danych z bazy i wyświetlenie ich?


Co do drugiego, to tak o to mi chodzi, tylko że w każdym wyświetlonym wpisie będzie POST ktory bedzie przekazywal id i kwote wpisana przez uzytkownika
Go to the top of the page
+Quote Post
toaspzoo
post
Post #5





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


...mysql_query("
  1. INSERT INTO tabela SET kwota = '$_POST[kwota]', user = '$uid'
...
Tylko filtruj wszystkie dane z inputów i nie tylko (IMG:style_emoticons/default/smile.gif)

  1. <?
  2. function safe($tresc)
  3. {
  4.  
  5.  
  6.  
  7. $tresc = str_replace("<", '&lt;' , $tresc);
  8. $tresc = str_replace(">", '&gt;' , $tresc);
  9. $tresc = str_replace("<?", '&lt<?' , $tresc);
  10. $tresc = str_replace('"', '"', $tresc);
  11. $tresc = str_replace("'", ''', $tresc);
  12.  
  13. return $tresc;
  14. }
  15.  
  16. // ! function requires safe() function to work
  17. function safe_array($array,$exception="")
  18. {
  19.  
  20. $i = count($array);
  21. $k = array_keys($array);
  22.  
  23. for($a=0;$a<$i;$a++)
  24. {
  25. if($k[$a]!=$exception)
  26. {
  27. $array[$k[$a]] = safe($array[$k[$a]]);
  28. $array[$a] = safe($array[$a]);
  29. }
  30. }
  31.  
  32. return $array;
  33. }
  34.  
  35. ?>
Go to the top of the page
+Quote Post
smrodek11
post
Post #6





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 27.12.2010

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


Ok, żeby nie robić nowego tematu, co mam tu źle:
  1. <?php
  2. $query = mysql_query("select * from aukcje order by id desc limit 0,5");
  3. while($rekord = mysql_fetch_array($query))
  4. {
  5. $naz ="<div id=\"top\"> <div id=\"tabela\">$rekord[1]</div> <div id=\"prawa\">$rekord[3]</div> <form action=\"index.php?site=bid\" method=\"post\"> <div id=\"prawa\"><input name=\"bid\" type=\"text\"></div> <div id=\"prawa\"><input name=\"bid\" type=\"hidden\" value='$rekord[0]'></div> <div id=\"prawa\"><input type=\"submit\" value=\"Wyslij\"/></div>";
  6. }
  7. echo ''.$naz.'';
  8. ?>

Że jest wyświetlany tylko jeden, pierwszy rekord?
Tabela z której ma pobierać wygląda tak: http://screenshooter.net/0158681/qtatxaq
A pobiera tylko pierwszy rekord :/
Go to the top of the page
+Quote Post
IceManSpy
post
Post #7





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Cały czas nadpisujesz tą samą zmienną. Zrób tak:
  1. <?php
  2. $query = mysql_query("select * from aukcje order by id desc limit 0,5");
  3. $naz = "";
  4. while($rekord = mysql_fetch_array($query))
  5. {
  6. $naz .="<div id=\"top\"> <div id=\"tabela\">$rekord[1]</div> <div id=\"prawa\">$rekord[3]</div> <form action=\"index.php?site=bid\" method=\"post\"> <div id=\"prawa\"><input name=\"bid\" type=\"text\"></div> <div id=\"prawa\"><input name=\"bid\" type=\"hidden\" value='$rekord[0]'></div> <div id=\"prawa\"><input type=\"submit\" value=\"Wyslij\"/></div>";
  7. }
  8. echo ''.$naz.'';
  9. ?>
Go to the top of the page
+Quote Post
toaspzoo
post
Post #8





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


(IMG:style_emoticons/default/axesmiley.png)
  1. <?php
  2. $query = mysql_query("select * from aukcje order by id desc limit 0,5");
  3. while($rekord = mysql_fetch_array($query))
  4. {
  5. $naz ="<div id=\"top\"> <div id=\"tabela\">$rekord[1]</div> <div id=\"prawa\">$rekord[3]</div> <form action=\"index.php?site=bid\" method=\"post\"> <div id=\"prawa\"><input name=\"bid\" type=\"text\"></div> <div id=\"prawa\"><input name=\"bid\" type=\"hidden\" value='$rekord[0]'></div> <div id=\"prawa\"><input type=\"submit\" value=\"Wyslij\"/></div>";
  6. echo $naz;
  7. echo '<br>';
  8. }
  9.  
  10. ?>


Ten post edytował toaspzoo 12.08.2012, 16:39:11
Go to the top of the page
+Quote Post
smrodek11
post
Post #9





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 27.12.2010

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


Troche przerobiony kod zamierzałem użyć do wyświetlania logów, tylko coś mi nie idzie:
Kod
<?php
    $query = mysql_query("SELECT * FROM logi WHERE login = '$Login'");
    while($rekord = mysql_fetch_array($query))
    {
    $naz ="<div id=\"top\"> <div id=\"tabela\">$rekord[1]</div>";
    echo $naz;
    echo '<br>';
    }
    
    ?>


Bez "WHERE" w zapytaniu, wszystko działa :/
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #10





Grupa: Zarejestrowani
Postów: 1 421
Pomógł: 310
Dołączył: 18.04.2012

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


strzelam: $login, zamiast $Login
Go to the top of the page
+Quote Post
smrodek11
post
Post #11





Grupa: Zarejestrowani
Postów: 42
Pomógł: 0
Dołączył: 27.12.2010

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


Nie, to nie to, raczej źle zbudoawane zapytanie ale w innych przykładach widziałem że ludzie również używali "Where" i to działało
Błąd jaki teraz wyskakuje: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /homez.379/timetopl/www/strona/logikonta.php on line 8
Odnosi się do linijki:
Kod
while($rekord = mysql_fetch_array($query))


Dałem coś takiego:
Kod
$logi = mysql_query("SELECT * FROM logi WHERE login= '$Login'");

I działa O.o

Ten post edytował smrodek11 13.08.2012, 07:35:37
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 2.10.2025 - 17:09