Doppelte einträge aus Datenbank entfernen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Doppelte einträge aus Datenbank entfernen

    Hallo Forum

    Folgender Code löscht beendete Gewinnspiele(Logindaten und Emailadresse werden nicht gelöscht)
    Jetzt gibt es auch mehrere Gewinnspiele von der selben Person und ich möchte das immer nur ein gelöschtes erhalten bleibt.
    Meine Frage ist ob man das da noch einfach einfügen kann und wie?



    //Setzt Satatus von "beendet" auf gelöscht;
    $ergebnis = mysql_query("SELECT id,time_ende FROM webmaster WHERE status = 'beendet' ");
    while($row = mysql_fetch_object($ergebnis))
    {
    if (time() >= ($row->time_ende+$dauer)) {$update = mysql_query("UPDATE webmaster Set
    home = '',home1 = '',titel = '',beschreibung = '',preis= '', beginn = '',ende = '',
    time_beginn = '',time_ende = '', time = '',wuerfel_schwarz = '',turnus = '',
    status ='geloescht' WHERE id ='$row->id'");
    };
    };?>

    Über hilfe währe ich sehr Dankbar!
  • Hi,
    nur mal zwei Tipps am Rande.
    1) Die eingrenzene Bedingung was du löschst, solltest du nicht im PHP machen, sondern in deinem SELECT
    2) Du solltest Daten nicht wirklich löschen, sondern in deinem Programmcode entscheiden, dass du beendete Gewinnspiele nicht mehr anzeigst.

    Und letztendlich: was möchtest du löschen?
    Alle Gewinnspiele von Benutzern die mehr als 1 Spiel haben?

    Dann musst du in deinem SELECT ergänzen: ... GROUP BY userspalte HAVING COUNT(userspalte) > 1