Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql]Scalanie podobnych rekordow
Forum PHP.pl > Forum > Bazy danych > MySQL
_Stachu
Zrobilem sobie skrypt statystyki ktory do jednej tabeli zapisuje uzytkownikow z ich danym (geoip, ip, przegladarka, komputer...), a do drugiej pokolei strony na ktorych chodza oraz ($_SERVER["HTTP_REFERER"]).

W panelu wyswietlam referentow w nastepujacy sposob:
  1. <?php
  2. $zap = $sql->zapytaj(&#092;"SELECT DISTINCT strona_od FROM statystyki_strony WHERE strona_od != '' ORDER BY start DESC LIMIT 48\");
  3. while($r = $sql->tablica($zap))
  4. {
  5. $zap2 = $sql->zapytaj(&#092;"SELECT COUNT(strona_od) FROM statystyki_strony WHERE strona_od = '$r[0]'\");
  6. $aa = $sql->wiersz($zap2);
  7.  
  8. echo &#092;"<a href=\"$r[0]\" target=\"_blank\">$r[0]</a>[{$aa[0]}]<br />\";
  9.  
  10. }
  11.  
  12. ?>


W tym problem ze skrypt pokazuje mi kazda strone o innym adresie tzn. www.google.pl http://google.pl to osobne adresy. Tak samo jest jak ktos wyszukiwal w google.

Czy jedynym rozwiazaniem jest zapisywanie do tabel samego hostu? Moze da sie zapisac jakosc inaczej zapytanie?
Skobi
Witam,

Moim zdaniem, najlepszym rozwiazaniem jest zapisywanie samego hosta poniewaz dane ktore wystepuja w kazdej nazwie mozesz dopisac. Sam w niektorych projektach borykalem sie z tego typu bledami co w rezultacie dalo mniejsza wydajnosc aplikacji.
Lecz jezeli chcesz dalej w ten sposob zapisywac to mozesz to wyszukac tak:

  1. SELECT COUNT(strona_od)
  2. FROM statystyki_strony WHERE strona_od LIKE '%".$r[0]."%';


co w rezultacie wyszuka wszystkie wystapienia danej frazy w polu. np.:

Tabela statystyki_strony:

strona_od
---------------------
www.google.pl
www.statix.pl

  1. <?php
  2.  
  3. $r[0] = &#092;"statix.pl\";
  4.  
  5. ?>


to zapytanie zwróci: 1
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.