time() und date(Y)

crashx

Erfahrenes Mitglied
Hallöe mal wieder

Ich habe in meiner Datenbank einträge die beim Eintrag einen Timestamp bekommen welcher mit time() generiert wird.

Irgendwie stehe ich auf dem Schlauch und komme da nicht ganz weiter.
Ich möchte nun alle datensätze ausgeben welche im zb. Jahr 2006 eingetragen wurde.

PHP:
$sql = "SELECT * FROM `auftrag` 
	    WHERE `status` = '".mysql_real_escape_string('bezahlt')."'
	    AND   `date_rechnung` LIKE '%".mysql_real_escape_string(date(Y, $_SESSION['status']))."%'
	   ";

Das ist mein ansatz, welcher mich aber nicht weiter bringt.
 
Hallo,

welchen Format besitzt date_rechnung denn? Sprich ist das Datum formatiert oder steht dort nur die unixtime drin.

Gruss
 
Ist $_SESSION['status'] vielleicht leer?

Und die Benutzung von [phpf]mysql_real_escape_string[/phpf] bei Übergabe eines festen Strings ist nicht nötig.
 
Auf die einfache Lösung bin ich nicht gekommen :)
Also bin ich wieder mal den umständlicheren weg gegangen und prüfe die richtigkeit erst in der Ausgabe :)


PHP:
$sql = "SELECT * FROM `auftrag` 
	    WHERE `status` = '".mysql_real_escape_string('bezahlt')."'
	   ";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
  $sql1 = "SELECT * FROM `rechnung` WHERE `auftrag_nr` = '".mysql_real_escape_string($row['auftrag_nr'])."'";
  $result1 = mysql_query($sql1);
  $preis = 0;
  while($row1 = mysql_fetch_array($result1)){
    if(date(Y, $row['date_rechnung']) == $_SESSION['status']){
      $pdf->Cell(60,0,$row['auftrag_nr']);
      $pdf->Cell(60,0,date('d.m.Y'), $row['date_rechnung']);
      $preis = $preis+$row1['preis'];
      $mwst = $preis/100*7.6;
      $preis = $preis+$mwst;
      $pdf->Cell(48.5,0,number_format(round($preis, 1), 2, '.', '').' CHF',0,0,'R');
      $pdf->Ln(4);
    }
  }
}
 
Dann probier es mal so:

PHP:
$sql = "SELECT * FROM `auftrag` 
        WHERE `status` = '".mysql_real_escape_string('bezahlt')."'
        AND   FROM_UNIXTIME(`date_rechnung`, '%Y') LIKE '%".mysql_real_escape_string(date(Y, $_SESSION['status']))."%'
       ";

Denn der Timestamp beinhaltet ja nur Sekunden, muss also auch entsprechend formatiert werden.
MySQL Doku: Date and Time Functions
 
Zurück