Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

SQL Ausführung mit Datum

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 10:44

Hallo

Ich habe Tabelle die heisst "Mitglieder" in der Tabelle sind unter anderem 2 Spalten "Anmeldedatum" und "Lastlogin"

Jetzt möchte ich eine SQL Delete Anweisung schreiben so das in der Tabelle Mitglieder alle Mitglieder gelöscht werden die 4 Tage dem Anmeldedatum immer noch kein Login hatten

Beisspiel Anmeldedatum 26.05.2005 - Lastlogin - 00.00.0000 also wenn der Wert 00.00.0000 nach 4 Tagen vom Anmeldedatum immer noch in der Spalte Lastlogin 00.00.0000 ist soll gelöscht werden

Wie schreibe ich die Delete Anweisung...

$query="DELETE FROM Mitglieder.....................................................";
mysql_db_query($dbname,$query,$conn) or die (mysql_error());

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Ice Man
PostRank 9
PostRank 9
Beiträge: 2477
Registriert: 04.06.2003, 19:16

Beitrag von Ice Man » 29.05.2005, 11:38

Welches Forum ?

für phpbb gibts da ein Klasse Mod.
Da kannste inaktive und andere User super Löschen.

Mit einem Befehl dürfte das nicht gehen.

Am einfachsten so:

Abfrage sortieren nach Anmeldedatum.
Im Ergebnis (am Besten ne Tabelle zum Anschauen) dann Login Date - Last Login.

Dann eine IF abfrage, wenn $ergebniss > 4 Tage dann delete, sonnst nix :)

So würde es gehen.
Aber sag mal lieber Typ des Forums.

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 29.05.2005, 12:30

mysql bietet fuer sowas zum einen den Typ

timestamp

(aufpassen, wenn der 1. nicht mit sich selber upgedated wird, wird er immer auf NOW() upgedated) an und zum anderen eine wunderschoene INTERVAL Funktion. Mehr auf mysql.com in der Doku.
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 13:31

hmmm also hilft mir nicht wirklich weiter....

Ich brauche schon eine richtige SQL Anweisung ...

Die Tabelle lautet Mitglieder die Spalten sind:

1. User
2. Anmeldedatum
3. Lastlogin
4. Timestamp

Dabei ist zuberücksichtigen das im Lastlogin der Wert 00.00.000 festgehalten ist wenn der User sich noch nie eingeloggt hat..

Jetzt könnte man quasi entweder den Wert aus der Spalte Anmeldedatum oder den Wert aus der Spalte Timestamp nehmen und vergleichen mit der akuellen Zeit ..

Dann die Bedingung wenn die aktuelle Zeit 4 Tage nach dem Anmeldedatum oder den Timestamp liegt und der Wert in der Lastlogin Spalte 00.00.000 ist dann soll der User gelöscht werden ....

Kann mir da jemande bitte eine eine richtige SQL Führung schreiben?

$query="DELETE FROM Mitglieder ????????????????????????????? ";
mysql_db_query($dbname,$query,$conn) or die (mysql_error());
Zuletzt geändert von jeep42 am 29.05.2005, 13:37, insgesamt 2-mal geändert.

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 13:33

Ice Man hat geschrieben:Welches Forum ?

für phpbb gibts da ein Klasse Mod.
Da kannste inaktive und andere User super Löschen.

Mit einem Befehl dürfte das nicht gehen.

Am einfachsten so:

Abfrage sortieren nach Anmeldedatum.
Im Ergebnis (am Besten ne Tabelle zum Anschauen) dann Login Date - Last Login.

Dann eine IF abfrage, wenn $ergebniss > 4 Tage dann delete, sonnst nix :)

So würde es gehen.
Aber sag mal lieber Typ des Forums.
Es ist eine indivuelle Programmierung kein Forumtyp

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 29.05.2005, 13:36

mach vorher mit
$datum= date("Y-m-d",time());
$datumvorviertagen = date("Y-m-d",mktime(0,0,0,substr($datum,5,7),substr($datum,8,10)-4,substr($datum,0,4));
$query="DELETE FROM Mitglieder WHERE Anmeldedatum < '".$datumvorviertagen."' AND lastlogin = '0000-00-00'";

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 13:43

auftragslinker hat geschrieben:mach vorher mit
$datum= date("Y-m-d",time());
$datumvorviertagen = date("Y-m-d",mktime(0,0,0,substr($datum,5,7),substr($datum,8,10)-4,substr($datum,0,4));
$query="DELETE FROM Mitglieder WHERE Anmeldedatum < '".$datumvorviertagen."' AND lastlogin = '0000-00-00'";
Wow sieht super aus verstehe ich auch alles bloss die Datum Variebeln verstehe ich nicht ganz ...

warum? 5,7, 8,10 -4 ????

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 29.05.2005, 13:45

;)

erste zeile wird das heutige datum als string produziert. in der zweiten zeile teilt er
den string nach monat, tag und jahr auf, sagt gleichzeitig tag-4 und baut daraus wieder ein datumsformat....

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 13:52

axo habe aber noch einen Fehler gefunden die Tabelle heisst Mitglieder und es sollen die User aus der Spalte User gelöscht werden wenn die von Dir geschriebene Bedingung eintrifft

Ist es kein Fehler reicht es aus so wie Du es geschrieben hast das die User gelöscht werden?

Oder muss noch die Anweisung mit rein das der User gelöscht wird?

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 29.05.2005, 13:58

mit der anweisung wird die komplette zeile aus der tabelle mitglieder gelöscht. die spalte user inklusive. denke, dass es nicht sinnvoll ist, nur die spalte user zu leeren

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 14:00

aha das heisst ein komplettes Mitglied wird komplett mit sämtlichen Daten gelöscht?

auftragslinker
PostRank 7
PostRank 7
Beiträge: 525
Registriert: 21.04.2005, 14:36

Beitrag von auftragslinker » 29.05.2005, 14:03

die komplette zeile(n), die diese anforderung erfüllt, wird gelöscht. mit allen spalten, die drinstehen.

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 14:10

ja so wollte ich es haben :D

Ich mache just mal ein Backup dann werde die Anweisung ausführen und hier posten ob alles oki war ca. 15 Minuten :)

jeep42
PostRank 1
PostRank 1
Beiträge: 15
Registriert: 21.05.2005, 19:40

Beitrag von jeep42 » 29.05.2005, 15:18

hmmm funzt leider nicht ...

Kann aber auch an mir liegen ...

Sagen wir mal Du würdest nur für diese Ausführung ein Script schreiben komplett mit allen drum und dran

$datum= date("Y-m-d",time());
$datumvorviertagen = date("Y-m-d",mktime(0,0,0,substr($datum,5,7),substr($datum,8,10)-4,substr($datum,0,4));
="DELETE FROM Mitglieder WHERE Anmeldedatum < '".$datumvorviertagen."' AND lastlogin = '0000-00-00'";

DBUser
DBPass
DB

Datenverbindung öffen
Ausführung
Datenverbindung schliesen

Wie würde das aussehen?

Airport1
PostRank 10
PostRank 10
Beiträge: 4489
Registriert: 16.08.2004, 18:50
Wohnort: Backnang / bei Stuttgart

Beitrag von Airport1 » 29.05.2005, 15:52

Leute, was macht ihr es so kompliziert, komplizierter gehts ja gar nicht !!

Wie schon geschrieben mal bei mysql.com die Doku lesen und dort nach den datetime Funktionen (bzw. INTERVAL) schauen (ja, da gibt es eine Suchfunktion), statt hier unwartbaren unuebersichtlichen Frickel-Code zu produzieren ;)

Ein bisschen selber erarbeiten sollte man sich aber seine Loesung schon.

Wer mir sowas wie oben mit "kunstvollem Umherrechnen" als Loesung abliefern wuerde, den wuerde ich gleich feuern ;-)
Linktauschanfragen zwecklos
https://www.bot-trap.de/ Spamschutz fuer Webmaster - zentrale Meldestelle fuer Web Spam
https://www.airport1.de/blog/ Lombagruschd Blog mid Gardadierle
https://www.ranking-hits.de/ Counter & PR Service

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag