Doppelte DB Eintäge löschen

dAk0Ta

Mitglied
Hi ich habe ein kleines Problem:

Unzwar habe ich ein onlineuser Script und soweit funktioniert das auch alles, doch leider kommt es vor das aufeinmal 2x den gleichen User online sieht. Obwohl das ja eigentlich garnicht vorkommen kann da kontrolliert wird ob die UserID schon vorkommt und dann sollte nur ein UPDATE vorgenommen werden doch es klappt irgendwie nicht. Also soweit so gut ist das ja auch nicht schlimm aber irgendwie siehts trotzdem komsich aus. Nun habe ich ein kleines Script geschrieben was bewirken soll das wenn zwei Werte mit der gleichen UserID in der Tabelle vorhanden sind soll eins davon geköscht werden. Der Code sieht folgendermaßen aus:
PHP:
$controli = mysql_query("SELECT * FROM onlineuser");
while($controlo = mysql_fetch_array($controli)) {
  $result = mysql_query("SELECT count(user_id) AS resultat FROM onlineuser GROUP BY " . $controlo['user_id'] . "");
  $look = mysql_fetch_array($result);
  if($look['resultat']>1) {
    mysql_query("DELETE FROM onlineuser WHERE user_id='" . $controlo['user_id'] . "'");   }
}

Doch leider Funktioniert das nicht... Und ich finde daran nichts falsches... Könnt ihr mir weiter helfen?
In diesem Abschnitt gibt mir der Server einen Fehler aus:
PHP:
$result = mysql_query("SELECT count(user_id) AS resultat FROM onlineuser GROUP BY " . $controlo['user_id'] . "");

Besten Dank im Vorraus...
 
Ahh OK ich habs selber geschafft...

PHP:
$controli = mysql_query("SELECT * FROM onlineuser");
while($controlo = mysql_fetch_array($controli)) {
  $result = mysql_query("SELECT user_id FROM onlineuser WHERE user_id='" . $controlo['user_id'] . "'");
  $look = mysql_num_rows($result);
  if($look>1) {
    mysql_query("DELETE FROM onlineuser WHERE user_id='" . $controlo['user_id'] . "' LIMIT 1");
  }
}
 
[PHPF]mysql_Error[/PHPF] :-(

Ich glaube nicht, dass du durch das group by Element jemals über 1 kommst.
 
Zurück