[SQL] Hilfestellung | Doppelte Einträge

Dieses Thema im Forum "Webentwicklung" wurde erstellt von furious1, 8. November 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 8. November 2009
    Hilfestellung | Doppelte Einträge

    Hallo,

    ich komme bei einem Script nicht weiter.

    Was ich will: Aus einer Tabelle mit mehreren Datensätzen mehrfach vorkommende IP´s rauszufiltern und dazu den Usernamen ausgeben.

    Beispiel

    ID | Name | IP
    1 | Paul | 127.0.2.1
    2 | Erich | 127.0.0.2
    3 | Frank | 127.0.3.3
    4 | Mike | 127.0.0.2
    5 | Dave | 127.0.3.1

    Falls doppelte Einträge gefunden wurden:

    Meldung "Warnung: Doppelte Einträge wurden gefunden. User (2) Erich und User (4) Mike mit IP 127.0.0.1!

    Habt ihr nen Denkanstoß für mich, wie ich das realisieren könnte? Ich lerne seit nem Monat PHP & MySQL Google brachte mich bis auf

    Code:
    select 
     UserID,ip 
    from database.user 
    where (UserID,ip) in (
     select 
     UserID,ip 
     from database.user 
     group by UserID, ip 
     having count(*) > 1
    ) 
    group by UserID,ip 
    having count(*) = 1
    nicht weiter.

    Also, bin für jeden Vorschlag dankbar!

    Gruß
     
  2. 8. November 2009
    AW: Hilfestellung | Doppelte Einträge

    mach doch mehrere querys

    PHP:
    $qry1  mysql_query ( '
        SELECT
            UserID, name, DISTINCT ip
        FROM database.user
    '
    );

    $dup  = array();
    while(
    $row  mysql_fetch_assoc ( $qry1 )) {
        
    $qry2  mysql_query ( '
            SELECT
                UserID, name
            FROM database.user
            WHERE UserID != ' 
    $row [ 'userID' ] .  '
                && ip = "' 
    $row [ 'ip' ] .  '"
        '
    );

        if(
    mysql_num_rows ( $qry2 )) {
            
    $dub [ $row [ 'ip' ]] = array( $row );
            while(
    $row2  mysql_fetch_assoc ( $qry2 ))
                
    $dub [ $row [ 'ip' ]][] =  $row2 ;
        }
    }

    print_r ( $dub );
     
  3. 10. November 2009
    AW: Hilfestellung | Doppelte Einträge

    Ok danke Dir!

    Aber wenn ich nun eine IP bei zwei Benutzern eintrage, bekomme ich einen

    Also Zeile 10 ist dann die while-Schleife
     
  4. 10. November 2009
    AW: Hilfestellung | Doppelte Einträge

    Dann wird der Query wohl irgendwie nen Fehler haben oder nix zurückgegen...

    PHP:
    $qry1  mysql_query ( '
        SELECT
            UserID, name, DISTINCT ip
        FROM database.user
    '
    );

    if (!
    $qry1 ) {
        die(
    mysql_error ());
    }

    $dup  = array();
    while(
    $row  mysql_fetch_assoc ( $qry1 )) {
        
    $qry2  mysql_query ( '
            SELECT
                UserID, name
            FROM database.user
            WHERE UserID != ' 
    $row [ 'userID' ] .  '
                && ip = "' 
    $row [ 'ip' ] .  '"
        '
    );

        if(
    mysql_num_rows ( $qry2 )) {
            
    $dub [ $row [ 'ip' ]] = array( $row );
            while(
    $row2  mysql_fetch_assoc ( $qry2 ))
                
    $dub [ $row [ 'ip' ]][] =  $row2 ;
        }
    }

    print_r ( $dub );  
    Da wird dir dann der MySQL-Fehler zurückgegebn!
     
  5. 17. November 2009
    AW: Hilfestellung | Doppelte Einträge

    Hi, danke euch für die schnelle Hilfe!

    Funktioniert nun nach etwas rummachen einwandfrei.

    Habe noch eine Frage: Wie kann ich die Eingabe in einem Formular so machen, dass z.B. ALT-Codes nicht zugelassen werden (z.B. ALT+0160 was dieses Leerzeichen ergibt)? Gibts da eine Funktion wie "is_numeric"?

    Danke schon mal!

    Gruß
     
  6. 17. November 2009
    AW: Hilfestellung | Doppelte Einträge

    htmlspecialchars
    htmlentities
    str_replace
    preg_replace
     
  7. 17. November 2009
    AW: Hilfestellung | Doppelte Einträge

    DANKE! Ultraschnell

    Damit hats sich erledigt. Vielen Dank!
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.