Webmaster Forum Logo Part 1 Webmaster Forum Logo Part 2
Webmaster Forum Logo Part 3
     
 
  :: Anmeldung

Benutzername:

Registrierung...

Passwort:

Passwort vergessen?

angemeldet bleiben


  
  :: Umfrage
Welche sozialen Netzwerke benutzt du regelmäßig?

 Facebook
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 73%
 keines
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 22%
 Google+
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 19%
 Twitter
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 11%
 Xing
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 6%
 schülerVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 5%
 meinVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 studiVZ
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 4%
 MySpace
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%
 LinkedIn
 Webmaster - WebspaceWebmaster - WebspaceWebmaster - Webspace 2%

 ges. 392 Stimmen
 
  :: Buttons

Valid XHTML 1.0 Transitional

Ninn

Eroberer

Dabei seit: 30.10.2002

Beiträge: 56

 

1 Zum Seitenanfang

Montag, 7. März 2005, 23:10

Suchabfrage: Spalte X gleich, aber Spalte Y versch.

Ich suche eine Möglichkeit einer bestimmten Suchabfrage in PHPmyAdmin

Ich habe in einer Tabelle, unter anderen, die Spalte "IP" und die Spalte "userid".

Ich will jetzt gerne alle Datensätze angezeigt bekommen in der die IP die selbe ist, der User aber ein anderer.

Beispiel 1 soll nicht ausgegeben werden:
IP 100.100.100.100 User 1111
IP 100.100.100.100 User 1111

Beispiel 2 soll ausgegeben werden:
IP 100.100.100.100 User 1111
IP 100.100.100.100 User 2222
nach Möglickeit noch sortiert nach der Spalte "posttime"


So würde ich gerne Doppelanmeldungen in meinem Forum aufspüren.
Ich hatte gerade einen Fall wo einer die Frauen im Forum belästigt hat, und sich dann mit Fake-Accounts verteidigt hat (der ist ja gar nicht so schlimm, denn kenne ich und der ist nett usw.).

Wie kann ich eine solche Abfrage machen.
Ich bin Newbie und bin nach vielen Versuchen noch auf keine Lösung gekommen, für Hilfe wäre ich sehr dankbar.
 

heinervdm

Technik-Admin

Dabei seit: 02.10.2002

Beiträge: 3 772

 

2 Zum Seitenanfang

Dienstag, 8. März 2005, 09:45

hmm, ich weis nicht ob es funktioniert aber probiers mal aus:

Quellcode

1
SELECT t1.ip, t1.user, t2.ip, t2.user FROM deinetabell AS t1,deinetabelle AS t2 WHERE t1.ip=t2.ip AND t1.user!=t2.user
Über mich: www.heinervdm.de
Persönlich Mitteilungen an mich bitte als PN (nicht Email) hier im Forum. ICQ und Skype bitte nur in Notfällen.
 

Ninn

Eroberer

Dabei seit: 30.10.2002

Beiträge: 56

 

3 Zum Seitenanfang

Dienstag, 8. März 2005, 23:35

Na ja, es kommt zwar keine Fehlermeldung es passiert aber auch nichts.

Der Mauszeiger hat eine halbe Ewigkeit eine Sanduhr und dann wird die Suche vermutlich wegen Zeitüberschreitung abgebrochen.
Ich muß wohl dazusagen das die Tabelle über 30.000 Datensätze hat.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

4 Zum Seitenanfang

Mittwoch, 9. März 2005, 15:09

Zitat

Original von Ninn
Na ja, es kommt zwar keine Fehlermeldung es passiert aber auch nichts.

Der Mauszeiger hat eine halbe Ewigkeit eine Sanduhr und dann wird die Suche vermutlich wegen Zeitüberschreitung abgebrochen.
Ich muß wohl dazusagen das die Tabelle über 30.000 Datensätze hat.


PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
    // Hier werden alle Daten fuer den mySQL connect eingegeben
    $db_Hostname   "localhost";        // Datenbank-Host (muss nicht zwingend immer localhost sein)
    $db_UserName   "root";             // Benutzername fuer diese Datenbank
    $db_Password   "";           // Zugehoeriges Passwort
    $db_Database   "test";             // Datenbank, auf die zugegriffen werden soll
    // Verbindung zur Datenbank
    mysql_connect($db_Hostname$db_UserName$db_Password) || die("Database Error: Can't Connect to DBMS: ".mysql_error());
    mysql_select_db($db_Database)|| die("Database Error: Can't connect to Database") ;

    $abfrage "SELECT DISTINCT(ip) FROM testip ORDER BY ip ASC";
    $ergebnis mysql_query($abfrage);
    while($row mysql_fetch_object($ergebnis))
    {
        $db_ip[] = $row->ip;
    }
    $max =count($db_ip);
    mysql_free_result($ergebnis);
    for($i=0;$i<$max;$i++)
    {
        $ip =$db_ip[$i];
        $abfrage ="SELECT id, ip FROM testip WHERE ip='$ip'";
        $ergebnis mysql_query($abfrage);
        while($row mysql_fetch_object($ergebnis))
        {
            $db_id2[] = $row->id;
            $db_ip2[] = $row->ip;
        }
        mysql_free_result($ergebnis);
        $max2 count($db_ip2);
        if($max2 >= 2)
        {
            for($e=0;$e<$max2;$e++)
            {
                echo"$db_id2[$e] :-: $db_ip2[$e]<br>";
            }
        }
        $db_id2="";
        $db_ip2="";
    }
?>


so ein kleines PHPScript was bei mir wunderbar funktioniert :) Nicht wundern wegen den Variablennamen :D musste schnelle gehen.

Das einzigste was du anpassen musst sind die SQL Anfragen und die Benutzerdaten damit du zur MySQL DB connecten kannst.

Viel Spaß mit dem neuem Produkt ;)

Greetz

MaxTPayne

€dit: Bei der While Schleife auch die Namen bitte anpassen sonst wird es nicht funktionieren :)

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »maxtpayne« (9. März 2005, 15:12)

 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

5 Zum Seitenanfang

Mittwoch, 9. März 2005, 16:52

Hallo,

feine Lösung, aber mich würde mal interessieren, ob das nicht ressourcenschonender geht? Weil bei 30.000 Datensätzen 30.001 Abfragen auf die Datenbank geschossen werden.

Könnte man das nicht mit einem

Zitat


SELECT IP, Count(User) FROM (SELECT testip.IP, testip.User FROM testip GROUP BY testip.IP, testip.User) GROUP BY IP HAVING Count(User)>1;


eleganter lösen? Diese Abfrage gibt in einer Abfrage direkt die passenden IP' zurück.

Gruss
Marty

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MartyMcFly« (9. März 2005, 16:53)

 

Ninn

Eroberer

Dabei seit: 30.10.2002

Beiträge: 56

 

6 Zum Seitenanfang

Mittwoch, 9. März 2005, 17:27

Danke erstmal für deine Mühe "maxtpayne"

Das Script funzt soweit, ist aber noch nicht ganz das was ich mir gedacht hatte, so werden ja alle IPs die mehr als einmal vorkommen mit dem zugehörigen User ausgegeben, auch wenn der User pro IP immer der selbe ist.
Das sind noch immer tausende Daten.

Ich hatte mir vorgestellt das nur dann die IPs ausgegeben werden, wenn es die selbe IP aber mit verschiedenen Usern gibt.
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

7 Zum Seitenanfang

Donnerstag, 10. März 2005, 08:20

Zitat

Original von Ninn
Danke erstmal für deine Mühe "maxtpayne"

Das Script funzt soweit, ist aber noch nicht ganz das was ich mir gedacht hatte, so werden ja alle IPs die mehr als einmal vorkommen mit dem zugehörigen User ausgegeben, auch wenn der User pro IP immer der selbe ist.
Das sind noch immer tausende Daten.

Ich hatte mir vorgestellt das nur dann die IPs ausgegeben werden, wenn es die selbe IP aber mit verschiedenen Usern gibt.


Ok mach ich gleich fertig :)

Greetz

MaxTPayne
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

8 Zum Seitenanfang

Donnerstag, 10. März 2005, 12:36

Hallo,

was gefällt Euch an meiner Abfrage nicht? Die liefert doch genau das.

Gruss
Marty
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

9 Zum Seitenanfang

Donnerstag, 10. März 2005, 14:24

Zitat

Original von MartyMcFly
Hallo,

was gefällt Euch an meiner Abfrage nicht? Die liefert doch genau das.

Gruss
Marty


nicht wirklich da deine Lösung nicht funktionieren kann da du im Subselect ein GROUP BY verwendest obwohl du ihm Subselect selber keine Agregatsfunktion benutzt und auch wenn man das ändert hat sie bei mir nicht funktioniert.

So hier ist meine neue Lösung (so wie es seien soll :D):

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
    // Hier werden alle Daten fuer den mySQL connect eingegeben
    $db_Hostname   "localhost";        // Datenbank-Host (muss nicht zwingend immer localhost sein)
    $db_UserName   "root";             // Benutzername fuer diese Datenbank
    $db_Password   "";           // Zugehoeriges Passwort
    $db_Database   "test";             // Datenbank, auf die zugegriffen werden soll
    // Verbindung zur Datenbank
    mysql_connect($db_Hostname$db_UserName$db_Password) || die("Database Error: Can't Connect to DBMS: ".mysql_error());
    mysql_select_db($db_Database)|| die("Database Error: Can't connect to Database") ;
     $abfrage 'SELECT DISTINCT (id), count(ip)
          FROM testip
                 WHERE ip>2
                 GROUP BY id
                 ORDER BY id ASC ';
    $ergebnis mysql_query($abfrage);
    while ($row mysql_fetch_array($ergebnisMYSQL_ASSOC))
    {
        if($row["count(ip)"]>=2)
        {
            echo"<b>ID: ";
            echo$row["id"];    
            echo"</b><br>";
        }    
    }
?>
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

10 Zum Seitenanfang

Donnerstag, 10. März 2005, 19:45

Zitat

Original von maxtpayne

Zitat

Original von MartyMcFly
Hallo,

was gefällt Euch an meiner Abfrage nicht? Die liefert doch genau das.

Gruss
Marty


nicht wirklich da deine Lösung nicht funktionieren kann da du im Subselect ein GROUP BY verwendest obwohl du ihm Subselect selber keine Agregatsfunktion benutzt und auch wenn man das ändert hat sie bei mir nicht funktioniert.


Tja, scheint so als ginge es in Access aber nicht in mySQL.

Gruss
Marty
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

11 Zum Seitenanfang

Donnerstag, 10. März 2005, 20:12

Zitat

Original von MartyMcFly

Zitat

Original von maxtpayne

Zitat

Original von MartyMcFly
Hallo,

was gefällt Euch an meiner Abfrage nicht? Die liefert doch genau das.

Gruss
Marty


nicht wirklich da deine Lösung nicht funktionieren kann da du im Subselect ein GROUP BY verwendest obwohl du ihm Subselect selber keine Agregatsfunktion benutzt und auch wenn man das ändert hat sie bei mir nicht funktioniert.


Tja, scheint so als ginge es in Access aber nicht in mySQL.

Gruss
Marty


Access ist auch pervers und ekelig :P ;)

Greetz

MaxTPayne
 

Alfons_G

Routinier

Dabei seit: 26.04.2003

Beiträge: 486

 

12 Zum Seitenanfang

Montag, 14. März 2005, 13:10

Access und MySQL würde ich auch nicht unbedingt als kompatibel bezeichnen ...

:P

Alfons
 

MartyMcFly

Foren Gott

Dabei seit: 04.06.2003

Beiträge: 3 137

 

13 Zum Seitenanfang

Montag, 14. März 2005, 13:41

Zitat

Original von Alfons_G
Access und MySQL würde ich auch nicht unbedingt als kompatibel bezeichnen ...


Stimmt, beide haben ihre Vor- und Nachteile :-)

Aber das meine Abfrage nicht Ansi-SQL ist habe ich nicht gedacht.

Gruss
Marty
 

Dabei seit: 08.12.2002

Beiträge: 1 220

 

14 Zum Seitenanfang

Montag, 14. März 2005, 18:40

naja anscheinend hab ich mir die Mühe umsonst gemacht er meldet sich ja nicht mehr :(

Greetz

MaxTPayne