Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Wyświetlanie tylko powtarzających się rekordów z bazy
gegos
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 11.11.2012

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


Witam
Chciałbym prosić o pomoc. Nie wiem jak napisać zapytanie do bazy danych aby wyświetliły mi się powtarzające się rekordy (np. mam tabele z użytkownikami i chciałbym aby wyświetliły mi się nicki osób które mają te samo IP pomijając użytkowników których IP jest unikalne w bazie). Prawdopodobnie będzie to coś związane z funkcją GROUP BY (ale nie jestem pewien). Z góry dzięki za odpowiedzi.
Go to the top of the page
+Quote Post
kefirek
post
Post #2





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


group by i having

  1. SELECT * FROM tabela GROUP BY ip HAVING COUNT(ip) > 1
Go to the top of the page
+Quote Post
gegos
post
Post #3





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 11.11.2012

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


Dzięki, a dałoby radę żeby wyświetlało mi również ten drugi rekord z tym samym IP?
Ponieważ w tej chwilii wyświetla nick usera którego IP się powtarza, jednak nie wyświetla nick drugiego usera który ma to samo IP.
Go to the top of the page
+Quote Post
kefirek
post
Post #4





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

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


  1. SELECT *, GROUP_CONCAT(CAST(user_name AS CHAR)) AS user_name FROM tabela GROUP BY ip HAVING COUNT(ip) > 1
Go to the top of the page
+Quote Post
gegos
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 11.11.2012

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


Niestety efekt jest ten sam co przy poprzednim zapytaniu :/
Go to the top of the page
+Quote Post
mmmmmmm
post
Post #6





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

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


SELECT * FROM tabela WHERE ip IN (SELECT ip FROM tabela GROUP BY ip HAVING COUNT(ip) > 1)
Go to the top of the page
+Quote Post
gegos
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 11.11.2012

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


  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'].'/db.php';
  3.  
  4. $multi = mysql_query("SELECT *, GROUP_CONCAT(CAST(login AS CHAR)) AS login FROM users GROUP BY lastip HAVING COUNT(lastip) > 1");
  5.  
  6. echo "<p>";
  7. echo '<table border="3"><tr>';
  8. echo '<td width="100"><center><strong>login</strong></center></td>';
  9. echo '<td width="60"><center><strong>ip</strong></td></center>';
  10. echo "</tr>";
  11.  
  12. while ( $row = mysql_fetch_row($multi) ) {
  13. echo "</tr>";
  14. echo '<td width="100"><center>'. $row[1] . '</center></td>';
  15. echo '<td width="60"><center>' . $row[10] . '</center></td>';
  16. echo "</tr>";
  17. }
  18. echo "</table>";
  19. ?>


//Edit

Zapytanie mmmmmmm działa jak należy.
Dzięki wszystkim za pomoc! smile.gif

Ten post edytował gegos 11.11.2012, 15:48:46
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 Aktualny czas: 21.08.2025 - 10:25