Auslesen aus nach einem bestimmten Datum

Versuch einfach mal das Datum als Timepstamp in der DB zu speichern, dann kannst du auch ordentlich damit Arbeiten!
 
Svenja_Berlin hat gesagt.:
Aber wenn ich das so mache wie du es mirgerade geschrieben hast, dann kommt gar nichts mehr
Sorry, hab übersehen, dass das wann_kommt_der_film ein anderes Format wie datum hat.
Kannst Du nicht danach abfragen?
PHP:
 $kino_vorschau = "SELECT
                  id,
                  name,
                  wann_kommt_der_film, 
                  titel
                  FROM
                  kino_vorschau
                  WHERE
                  datum >= now()
                  AND
                  datum <= DATE_ADD(now(), INTERVAL 14 DAY)
                   ";
 
Zuletzt bearbeitet:
Hallo German,

hmm nee auch wenn ich das so mache wie du das nun geschrieben hast kommt nichts. Er liest einfach keine Daten aus.

Wie meinst du das, ob ich das nicht so machen kann?

Gruß Svenja
 
Naja, steht in datum der gleiche Tag wie in wann_kommt_der_film?
Denn die datum-Spalte hat das richtige Format um solche Abfragen zu machen.
Unser deutsches Datumsformat hat in einer Datenbank eigentlich nichts verloren eben weil es sich zum Rechnen und Sortieren absolut nicht eignet ...
... aber das hatten wir hier ja schon das eine oder andere mal ...
 
Hmm,

wie kann ich aber dann das Datum bei den wann_kommt_der_film so eintragen wie ich das bei dem Datum mache? Denn beim Datum mache ich das einfach nur mit Now() aber beim wann_kommt_der_film da gebe ich das Datum so ein wie hier z.B:

30.03.2005

und dann lass ich das so eintragen. Kann ich das denn umwandeln lassen dass er mir das so einträgt wie bei dem Datum?

Gruß Svenja
 
Am Einfachsten mit 3 Eingabefeldern dd, mm und yyyy.
Zusammensetzen:
PHP:
$datum = $_POST['yyyy']."-".$_POST['mm']."-".$_POST['dd'];
oder mit einem Feld:
PHP:
$year  = substr($datum,6,4);
$month = substr($datum,3,2);
$day   = substr($datum,0,2);
$datum = $year."-".$month."-".$day;
 
So nun habe ich auch mal weiter gemacht. So lasse ich mir un das Datum zusammen setzten:

PHP:
						 <?php
 		    		    		    		for($x = 01; $x <= 31; $x++)
 		    		    		    		{
 		    		    		    			echo "		    		    		    			";
 		    		    		    			echo "<option value=\"".$x."\"";
 		    		    		    		    if(@$_POST['wann_kommt_der_film_tag'] == $x) echo " selected";
 		    		    		    			echo ">".$x."</option>\n";
 		    		    		    		}
 		    		    		    		?>
 					   </select>
 						 <select name="wann_kommt_der_film_monat">
 						   <?php
 		    		    		    		for($x = 01; $x <= 12; $x++)
 		    		    		    		{
 		    		    		    			echo "		    		    		    			";
 		    		    		    			echo "<option value=\"".$x."\"";
 		    		    		    		    if(@$_POST['wann_kommt_der_film_monat'] == $x) echo " selected";
 		    		    		    			echo ">".$x."</option>\n";
 		    		    		    		}
 		    		    		    		?>
 						 </select>
 						 <select name="wann_kommt_der_film_jahr">
 						   <?php
 		    		    		    		for($x = 2005; $x <= date("Y"); $x++)
 		    		    		    		{
 		    		    		    			echo "		    		    		    			";
 		    		    		    			echo "<option value=\"".$x."\"";
 		    		    		    		    if(@$_POST['wann_kommt_der_film_jahr'] == $x) echo " selected";
 		    		    		    			echo ">".$x."</option>\n";
 		    		    		    		}
 		    		    		    		?>

eintragen lass ich das dann so machen:

PHP:
	//Datum zusammenbauen
 	$date = $_POST['wann_kommt_der_film_jahr']."-".$_POST['wann_kommt_der_film_monat']."-".$_POST['wann_kommt_der_film_tag'];
 	if($date == "1915-01-01")
 	{
 		$date = "0000-00-00";
 	}

und dann so:

PHP:
					'" . addslashes($date)."',

welches muss ich nun von dir nehmen, dass ich die Daten auslesen kann?

Gruß Svenja
 
Wenn Du die <select> wie oben beschrieben ohne führende 0 generierst solltest Du $date so zusammen setzen:
PHP:
$date = sprintf ("%04d-%02d-%02d", $_POST['wann_kommt_der_film_jahr, $_POST['wann_kommt_der_film_monat, $_POST['wann_kommt_der_film_tag);
Erläuterung:
http://de3.php.net/manual/de/function.sprintf.php


Das <select> mit nur 2005 macht nicht wirklich Sinn, lieber so:
PHP:
for($x = date("Y"); $x <= date("Y")+1; $x++)

Wozu soll das gut sein?
PHP:
 	if($date == "1915-01-01")
 	{
 		$date = "0000-00-00";
 	}
Wenn Du ein Datum auf Existenz prüfen willst nimm checkdate ().
http://de3.php.net/manual/de/function.checkdate.php

welches muss ich nun von dir nehmen, dass ich die Daten auslesen kann?
PHP:
 $kino_vorschau = "SELECT
                  id,
                  name,
                  datum,
                  titel,
                  DATE_FORMAT(wann_kommt_der_film, '%d.%m.%Y') AS wann_kommt_der_film 
                  FROM
                  kino_vorschau
                  WHERE
                  wann_kommt_der_film >= now()
                  AND
                  wann_kommt_der_film <= DATE_ADD(now(), INTERVAL 14 DAY)
                   ";
 
Zurück