Statistik |
Beiträge: 144.531 (Täglich: 19,19 )
Themen: 16.700
Mitglieder: 13.209
Neuestes Mitglied: zitronentee.
Ausl. d. letzten Minute: 102%
Ausl. d. letzten 5 Minuten: 143%
Ausl. d. letzten 15 Minuten: 179%
Aktulle Uhrzeit: 19:28
Freier Webspace: 4.04 TB
PHP-Version: 7.4.33
|
|
|
|
|
Daten löschen |
|
Hallo,
Das Problem liegt daran, dass du es mit deiner Variante mit "Strings" zu tun hast.
Da funktionieren die Vergleichsoperatoren etwas anders.
Entweder arbeitest du mit Timestamps, denn dann hast du es nur mit Zahlen zu tun und es funktioniert wie erwartet, oder du verwendest die "DateTime"-Klasse, mit der ebenfalls die Vergleichsoperatoren wie erwartet funktionieren sollten.
__________________
|
|
17.03.2017 15:39 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
Das würde bedeuten ich müste die Strings in eien Timestamp wandeln!
|
|
17.03.2017 19:05 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
Ja, genau
was habe ich jetzt falsch gemacht hier:
code: |
1:
2:
3:
|
$dat1 = date("Y-m-d", strtotime($datum_von));
|
|
Wie wandle ich das um?
|
|
17.03.2017 19:47 |
|
|
|
Hallo,
Genau so:
code: |
1:
|
$dat1 = strtotime($datum_von); |
|
Die "date()"-Funktion macht dir einen "Datums-String" aus einem vorgegebenen Timestamp im zweiten Argument, dessen Formatierung du im ersten Argument der Funktion festlegst.
__________________
|
|
17.03.2017 19:49 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
ok. Jetzt muss ich das heuteige Datum genauso wandeln. Ist das richtig?
|
|
17.03.2017 20:01 |
|
|
|
Hallo,
|
Zitat: Original von headloose
ok. Jetzt muss ich das heuteige Datum genauso wandeln. Ist das richtig? |
|
|
Ja, das ist richtig.
Die Funktion "time()" ruft dir auch den heutige Timestamp auf, jedoch ist dieser bis auf die Sekunde genau.
__________________
|
|
17.03.2017 20:06 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
So, habe das ganze gewandelt und sieht auch gut aus.
Jetzt zur If Anweisung. Oh Mann ich dreh noch durch.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
if($dat1 == $timestamp || $dat2 < $timestamp ){
lösche
}
else
{
nix
}
|
|
so schmeist er mir alles raus und nicht die Datensaätez in dem genannten Zeitraum.
|
|
17.03.2017 20:14 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
Zuerst mal vielen Dank für Deine Hilfe.
Aber irgendwas stimmt immer noch nicht. Gelöscht werden soll nur im definierten Zeitraum. Danach nicht mehr.
|
|
17.03.2017 20:23 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
Hallo,
die If Anweisung habe ich jetzt so umgebaut.
Jetzt müste es gehen.
code: |
1:
2:
3:
4:
|
if($timestamp == $dat1 || $timestamp < $dat2 ){
|
|
|
|
17.03.2017 20:27 |
|
|
|
Hallo,
Ich weiß nicht wie du löscht oder wie deine Daten nun wirklich vorliegen.
Nehmen wir an du möchtest im Zeitraum 13.3.2017 - 15.3.2017 löschen.
Heutige Datum: 17.3.2017
Irgendwo muss dein Datum des Datensatzes gespeichert sein.
Diesen musst du erstmal abrufen.
Datum des Datensatzes(Im Timestamp-Format): $datatime
Dann könnte es wie folgt aussehen:
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
$heute=strtotime(date("Y-m-d"));
$datum_von=strtotime("2017-3-13");
$datum_bis=strtotime("2017-3-15");
if($datatime>=$datum_von && $datatime<=$datum_bis) {
...
Löschen
...
} |
|
"$heute" wird, wie man sieht auch nicht wirklich benötigt, es sei denn, du benötigst das heutige Datum in irgendeiner Weise.
__________________
|
|
17.03.2017 20:35 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
Sorry, ich muss das Thema noch einmal öffnen.
Ich habe es noch nicht hinbekommen.
Hier mal meine DB-Struktur
id --------> init()
Vorname --> varchr
Name --> varchr
date --> date
time --> timestamp
normalerweise müsste doch die letzte vorgeschlagene Variante von Schrimm funktionieren?
code: |
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:
|
// Ab Datum
$jahr_von = date("Y");
$monat_von = "02";
$tag_von = "15";
//string wandeln in Datum
$datum_von=strtotime("$jahr_von-$monat_von-$tag_von");
//bis Datum
$jahr_bis = date("Y");
$monat_bis = "03";
$tag_bis = "15";
//string wandeln in Datum
$datum_bis=strtotime("$jahr_bis-$monat_bis-$tag_bis");
$timestamp = time();
if($timestamp>=$datum_von && $timestamp<=datum_bis) {
...
Löschen
...
}
else
{
sonst nix
}
|
|
Jetzt müsste er mir doch die Datensätze im genannten Zeitraum löschen unabhängig von date. Oder habe ich da einen Denkfehler nach wie vor.
Es werden die Daten aber leider ständig gelöscht.
Danke schon mal im voraus
|
|
30.03.2017 12:18 |
|
|
|
Hallo,
Welche Daten werden nun gelöscht?
Poste hier mal bitte einen Datensatz vor dem Löschen, der nicht gelöscht werden sollte und es danach wird, sowie den genauen Code dazu den du ausführst, der zum Löschen führt.
__________________
|
|
30.03.2017 12:55 |
|
|
headloose
Routinier
Dabei seit: 19.12.2005
Beiträge: 357
0 Filebase-Einträge
Alter: 65 Jahre
Herkunft: Baden Württemberg
Bewertung:
Level: 41 [?]
Erfahrungspunkte: 2.382.689
Nächster Level: 2.530.022
Themenstarter
|
|
ja werde ich machen, geht aber erst gegen Später da ich jetzt weg muss.
|
|
30.03.2017 13:28 |
|
|
|
|
|
|