Es sollen Daten ausgegeben werden zukünftige und Daten die ein Monat alt sind...if ($monat >= ($

Es sollen Daten ausgegeben werden zukünftige und Daten die ein Monat alt sind...if ($monat >= ($

am 05.09.2006 21:20:34 von Michaela Hasselmann

Ich habe eine Liste die ich Ausgebe.
Und zwar sollen alle Daten inklusive die die ein Monat alt sind ausgegeben
werden.
Im Moment habe ich das so gelöst, das ich einfach das Monat von heute nehme
minus 1.
Doch was im Dezember noch einbandfrei funktioniert, haut im Januar nicht
mehr hin.

Jetzt die Frage kann man das nicht schon in einer sql Abfrage klären, die
Ausgabe

include ("sql.inc.php");

$heute = date("m");

echo 'Heute ist der '.$heute.' Monat des Jahres

';


$sql = "select * from test_ts ORDER BY date ASC";
$result = mysql_query($sql) or die ($sql.'
'.mysql_error());
while ($ausgabe = mysql_fetch_object($result)) {

// Umwandlung in deutsches Datum

$tag = substr($ausgabe->date,8,2);
$monat = substr($ausgabe->date,5,2);
$jahr = substr($ausgabe->date,0,4);

$date = $tag.".".$monat.".".$jahr;


if ($monat >= ($heute-1))
{
echo $date.' .... '.$ausgabe->name.'
';
}

};



Michaela

Re: Es sollen Daten ausgegeben werden zukünftigeund Daten die ein Monat alt sind...if ($monat >

am 05.09.2006 21:51:40 von Thomas Rachel

Michaela Hasselmann wrote:

> Ich habe eine Liste die ich Ausgebe.
> Und zwar sollen alle Daten inklusive die die ein Monat alt sind ausgegeben
> werden.
> Im Moment habe ich das so gelöst, das ich einfach das Monat von heute
> nehme minus 1.
> Doch was im Dezember noch einbandfrei funktioniert, haut im Januar nicht
> mehr hin.

Klar, wenn Du einfach den Monat um 1 runterzählst. Du könntest auch eine
Fallunterscheidung machen und, falls der Monat 0 ist, das Jahr
dekrementieren und den Monat auf 12 setzen.

Aber da Du ja mit MySQL arbeitest, wäre es wesentlich geschickter, direkt
die Abfrage so zu gestalten, daß nur die gewünschten Daten ausgegeben
werden.

Aus

"select * from test_ts ORDER BY date ASC"

wird

"select * from test_ts WHERE date > date_sub(current_date(), INTERVAL 1
MONTH) ORDER BY date ASC"


Deine Frage wäre in de.comp.lang.php.datenbanken übrigens passender gewesen,
da es keine reine Datenbankfrage war.


Thomas