Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL] Łączenie rekordów
Zmorcia
post
Post #1





Grupa: Zarejestrowani
Postów: 234
Pomógł: 5
Dołączył: 26.01.2008
Skąd: Lutcza

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


Witam mam taki mały problemik. mam baze danych a wniej uzytkowników, i chce sprawedzić czy nie mam multikont:

taka struktura:

id | login | haslo | ip

1 | test1 | haslo | 192.20.22.43
2 | test2 | haslo | 192.20.22.43
3 | test3 | haslo | 192.60.212.87
4 | test4 | haslo | 192.20.62.12

Widać pirwsze dwa rekordy to multi konto z jednego ip (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Jak zrobic aby kolorować te rekordy które są już multi:
np:

1 | test1 | haslo | 192.20.22.43
2 | test2 | haslo | 192.20.22.43
3 | test3 | haslo | 192.60.212.87
4 | test4 | haslo | 192.20.62.12

I każde multi konto na kolor czerwony (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
krzyszbi
post
Post #2





Grupa: Zarejestrowani
Postów: 251
Pomógł: 13
Dołączył: 15.09.2005

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


zobacz w manualu array_unique i notatki użytkowników link
Go to the top of the page
+Quote Post
zegarek84
post
Post #3





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

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


stwóż wirtualna tabelkę - jeśli kożystasz z PDO to zapytanie dla przykładu:
$db->query("CREATE VIEW zestawienie as SELECT baza.ip as ip,count(*) as liczba FROM baza GROUP BY baza.ip")

i pobierając w jednym zapytaniu z bazy wraz z dodatkowym prametrem - liczba tych ip możesz sobie przypisać formatowanie zależne od tej liczby, dla przykładu:
echo '<tr bgcolor="'.($row['zestawienie.liczba']>1?'yellow':'white').............

no oczywiscie aby pobrać z bazy dodatkowy argument musisz sobie połączyć tabele z wirtualną podczas zapytania:
$db->query("SELECT baza.id,baza.login,baza.haslo,baza.ip,zestawienie.liczba FROM baza LEFT JOIN zestawienie ON baza.ip=zestawienie.ip")


no oczywiście wynik zapytania musisz sobie przetwożyć i wyswietlić zaleznie od parametru zestawienie.liczba



a jeśli chcesz wyświetlic po prostu powtarzające się rekordy z ip to wystarczy:


Kod
$db->query("SELECT baza.id,baza.login,baza.haslo,baza.ip, FROM baza WHERE baza.ip=(SELECT ip FROM baza GRUP BY ip HAVING COUNT(*)>1)")



pozdro

Ten post edytował zegarek84 17.10.2008, 02:31:41
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 - 23:17