Automatisches Deaktivieren nach Datumablauf

Hallo,

ich möchte in meiner Datenbank ein Enddatum eingeben,
um Artikel nach diesem Datum nicht mehr anzuzeigen.
Wie gehe ich am besten vor? Bisher habe ich das manuell
gemacht, in dem ich ‚status‘ aktuell bzw offline per Formular
in der Datenbank geändert habe.
Der Befehl bisher:

$count= „SELECT COUNT(*) FROM ordner WHERE rubr_1=’“.$_GET[‚rubr‘]."’ ORDER BY status" ;

Neu sollte es dann so funktionieren:
Tagesdatum größer als Enddatum = Artikel wird nicht angezeigt.
Wie schaut so ein Befehl dann aus bzw wie muss ich das ganze ergänzen?

Schönen Gruß und vielen Dank im voraus!
Mike


$count= „SELECT COUNT(*) FROM ordner WHERE
rubr_1=’".$_GET[‚rubr‘]."’
ORDER BY status“ ;

Neu sollte es dann so funktionieren:
Tagesdatum größer als Enddatum = Artikel wird nicht angezeigt.
Wie schaut so ein Befehl dann aus bzw wie muss ich das ganze
ergänzen?

nichts spricht gegen eine weitere where-Bedingung…?
Ist halt die Frage, ob Du mit timestamps arbeitest, oder mit Datumswerten - wobei ich die Timestamps bevorzuge…
Alternativ kannst Du auch erst im PHP code rausfiltern…
Wäre relativ egal :wink:

außerdem solltest du kein $_GET[] direkt in deine SQL Abfrage einbauen sondern vorher einen sicherheitscheck machen ob das was per $_GET[] übergeben wird überhaupt übergeben werden darf.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Vielen Dank schonmal und Hallo!

Wenn ich das ganze mit Timestamp machen möchte, muss ich das Datum aber erst umwandeln (z.B. hier: www.voja.de/descht/timestamp.php )
und dann diesen Timestamp-Wert im Formular eingeben?
Gibt es nicht die Möglichkeit, das Datum einzugeben und das php rechnet das automatisch um?

Für mich wäre es auch übersichtlicher, wenn ich ein Datum sehe und kein Timestamp-Wert…

Schönen Gruß
Mike

Hallo !

Vielen Dank schonmal und Hallo!

Wenn ich das ganze mit Timestamp machen möchte, muss ich das
Datum aber erst umwandeln (z.B. hier:
www.voja.de/descht/timestamp.php )
und dann diesen Timestamp-Wert im Formular eingeben?
Gibt es nicht die Möglichkeit, das Datum einzugeben und das
php rechnet das automatisch um?

list($t, $m, $j) = explode(".", §datum); //$datum 25.1.2006 -\> dt. Format
$timestamp = mktime(0,0,0,$m, $t $j);

Für mich wäre es auch übersichtlicher, wenn ich ein Datum sehe
und kein Timestamp-Wert…

Dann nimm doch auch DATE in der Datenbank, dann wird das z.B. auch in phpmyadmin als Datum angezeigt. In diesem Fall musst du als „y-m-d“ Einfügen, ( date(„Y-m-d“ $timestamp) oder „$j-$m-$t“ von oben). Ggfs. auch per FROM_UNIXTIME($timestamp) direkt in mySQL.

Im WHERE kannst du dann ggfs. auch direkt mit dem aktuellen Datum arbeiten, ohne das erst per PHP vorzugeben, WHERE end_datum

Hallo und Danke!

Ich habe im mysql ein Feld mit dem Enddatum hinzugefügt.
In meinem Admin-Bereich sehe ich jetzt auch das Enddatum.
Allerdings habe ich ein Problem bei der Anzeige. Es werden
trotzdem alle Artikel (auch die, deren Enddatum zurückliegt)
angezeigt.
Wie verknüpfe ich die beiden WHERE-Bedingungen, damit es klappt?
Mit…
$count= "SELECT COUNT(*) FROM ordner WHERE end_datumWHERE rubr_1=’".$_GET[‚rubr‘]."’ OR rubr_2=’".$_GET[‚rubr‘]."’ ORDER BY status" ;
…funktioniert es leider nicht.

Schönen Gruß
Mike

hier sollte es hin. :smile:
Hallo und Danke!

Ich habe im mysql ein Feld mit dem Enddatum hinzugefügt.
In meinem Admin-Bereich sehe ich jetzt auch das Enddatum.
Allerdings habe ich ein Problem bei der Anzeige. Es werden
trotzdem alle Artikel (auch die, deren Enddatum zurückliegt)
angezeigt.
Wie verknüpfe ich die beiden WHERE-Bedingungen, damit es klappt?
Mit…
$count= "SELECT COUNT(*) FROM ordner WHERE end_datumWHERE rubr_1=’".$_GET[‚rubr‘]."’ OR rubr_2=’".$_GET[‚rubr‘]."’ ORDER BY status" ;
…funktioniert es leider nicht.

Schönen Gruß
Mike

Hallo,

Wie verknüpfe ich die beiden WHERE-Bedingungen, damit es
klappt?

das 2. WHERE weglassen…

$count= "SELECT COUNT(*) FROM ordner WHERE
end_datumWHERE rubr_1=’".$_GET[‚rubr‘]."’ OR
rubr_2=’".$_GET[‚rubr‘]."’ ORDER BY status" ;

Alexander

Fehlermeldung wäre net schlecht :wink:
aber ich geh einfach mal davon aus das nen where zuviel ist

$count= "SELECT COUNT(\*) FROM ordner **WHERE  
end\_datum(`rubr_1`='".$\_GET['rubr']."' OR  
`rubr_2`='".$\_GET['rubr']."') ORDER BY status" ;**  

so sollte es eigentlich klappen :wink:

gruß
Phillip

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Philipp,

die Fehlermeldung lautete:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in …

Wenn ich es ohne dem zweiten WHERE versuche, habe ich keine Fehlermeldung.
Allerdings filtert er mir auch kein Enddatum aus.

Schönen Gruß
Mike

Hallo,

Wenn ich es ohne dem zweiten WHERE versuche, habe ich
keine Fehlermeldung.
Allerdings filtert er mir auch kein Enddatum aus.

Habe ich wohl „“ verwechselt… wenn das end_datum > ist (oder >=) als das aktuelle Datum, soll er es anzeigen :wink:

Alexander

:smile:
Hallo,

vielen Dank Euch allen!!
Hat jetzt geklappt. :smile:

Schönes Wochenende noch

Schönen Gruß
Mike