Avatar billede yvette Nybegynder
22. april 2006 - 00:42 Der er 5 kommentarer og
1 løsning

Udtrækkere brugere fra mysql db der har samme ip

Jeg skal have udtrækket alle brugere fra en mysql database der hedder users hvor ipen går igen.
Altså hvis flere brugere har samme ip skal de skrives i dokumentet.

Tabellen hedder users. Brugernavne er username og ip er ipadr.

Håber i kan hjælpe for jeg er helt væk ligenu
Avatar billede yvette Nybegynder
22. april 2006 - 01:35 #1
Er fundet frem til noget lignende det her..
Men det virker ikke helt korrekt!

<?php
$q = mysql_query("SELECT ip, username FROM users GROUP BY ip HAVING COUNT(*) > 1 ORDER BY ip") or sqlerr(__FILE__, __LINE__);
while($r = mysql_fetch_array($q)) {
echo "<tr>
    <td>$r[username]</td>
    <td>$r[ip]</td>
</tr>";
}
?>
Avatar billede duejensen Nybegynder
22. april 2006 - 07:19 #2
Nej den giver jo kun et username for hver ip - pga. GROUP BY.

Hvis du har en MySql version der tillader subqueries (4.1 eller højere)

tror jeg dette her vil virke:

select ip, username from users where id in (select ip from users group by ip
having count(*) > 1 ) order by ip


Alternativt kan man gøre noget i stil med:


<?php
    $q = mysql_query("SELECT ip FROM xxx GROUP BY ip HAVING COUNT(*) > 1 ORDER BY ip") or or sqlerr(__FILE__, __LINE__);

    while($r = mysql_fetch_array($q)) {
        $q1=mysql_query("select user from xxx where ip='". $r['ip']. "'") or sqlerr(__FILE__, __LINE__);

        while ($r1 = mysql_fetch_array($q1)) {
            echo "<tr> <td>$r1[user]</td>  <td>$r[ip]</td>    </tr>";
    }
}
?>
Avatar billede duejensen Nybegynder
22. april 2006 - 07:21 #3
Ups, jeg glemte lige at skifte tilbage til dit tabelnavn, så der skal selvfølgeligt stå

<?php
    $q = mysql_query("SELECT ip FROM users GROUP BY ip HAVING COUNT(*) > 1 ORDER BY ip") or or sqlerr(__FILE__, __LINE__);

    while($r = mysql_fetch_array($q)) {
        $q1=mysql_query("select username from users where ip='". $r['ip']. "'") or sqlerr(__FILE__, __LINE__);

        while ($r1 = mysql_fetch_array($q1)) {
            echo "<tr> <td>$r1[username]</td>  <td>$r[ip]</td>    </tr>";
    }
}
?>
Avatar billede yvette Nybegynder
22. april 2006 - 12:45 #4
Det virker perfekt! Er det muligt du hurtigt kan finde så hvis ip feltet er tom skal det ikke printes, og hvis ip er unknown skal det ikke printes :)

Du må meget gerne skrive et svar så du kan få points
Avatar billede yvette Nybegynder
22. april 2006 - 14:34 #5
Jeg fik det selv fikset det andet.. Men skriv et svar så for du points :)
Avatar billede duejensen Nybegynder
22. april 2006 - 16:15 #6
fino
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester