ralf: Das gestrige Datum abfragen.

Hi,

ich möchte aus einer Datenbank alle gestrigen Daten haben.

ich hab es so probiert:

$date=date("Y-m-d",-1);
$sql="SELECT * FROM user WHERE datum=$date";
$result=mysql_query($sql,$connect);

Leider bekomm ich dann ne fehlermeldung:

Warning: unexpected error in date() in navbar.php on line 28

Warning: Supplied argument is not a valid MySQL result resource in navbar.php on line 31

Wie geht des denn?

danke und gruss

ralf

  1. Hi,

    ich hab es so probiert:

    $date=date("Y-m-d",-1);

    Ich verstehe die Syntax nicht ganz. Das ergibt Fehler 1.

    $sql="SELECT * FROM user WHERE datum=$date";

    Vor und nach $date fehlt je ein Hochkomma '.

    Zu deinem Problem: Hol dir mit time() den aktuellen Timestamp und
    ziehe die Zahl der Sekunden, die ein Tag hat, ab (86400). Das wan-
    delst du dann ins benötigte Format um, oder noch besser, du benutzt
    in deiner Datenbank auch Timestamps.

    Bye,
    Peter

    1. $date=date("Y-m-d");

      Machs so:
      $date=date("Y-m-d");
      $yesterday=$date-1;
      Problem: Was ist, wenn heute der 1. des ´Monats ist?
      CU
      http://www.wc24.de.vu

      1. vergiss es, ist falsch!

    2. Hi,

      Zu deinem Problem: Hol dir mit time() den aktuellen Timestamp und
      ziehe die Zahl der Sekunden, die ein Tag hat, ab (86400). Das wan-
      delst du dann ins benötigte Format um, oder noch besser, du benutzt
      in deiner Datenbank auch Timestamps.

      hab n einfacheren weg gefunden als alles umzuwandeln :)

      $date=date("Y-m-d",strtotime("-1 day"));

      Gruss

      ralf

  2. Hallo!

    ich möchte aus einer Datenbank alle gestrigen Daten haben.

    $sql="SELECT * FROM user WHERE datum=$date";

    Hat die Spalte "datum" den Spaltentype DATE, kannst Du folgendes SQL-Statement verwenden.

    SELECT * FROM user WHERE datum=DATE_ADD(CURDATE(), INTERVAL -1 DAY);

    Wenn die Spalte "datum" den Spaltentype DATETIME hat, mußt Du folgendes SQL-Statement verwenden. Mit DATE_FORMAT muß zum vergleichen erst dasDatum auf die Form YYYY-MM-DD gebracht werden. Ich habe jetzt keine Funktion gefunden, um das Datum aus DATETIME zu extrahieren.

    SELECT datum FROM newsletter WHERE DATE_FORMAT(datum, '%Y-%m-%d')=DATE_ADD(CURDATE(), INTERVAL -1 DAY);

    So sparst Du Dir das rumgemurkse mit PHP.

    MfG, André Laugks

    1. SELECT datum FROM newsletter WHERE DATE_FORMAT(datum, '%Y-%m-%d')=DATE_ADD(CURDATE(), INTERVAL -1 DAY);

      SELECT * FROM user WHERE DATE_FORMAT(datum, '%Y-%m-%d')=DATE_ADD(CURDATE(), INTERVAL -1 DAY);

      datum und newsletter waren noch vom testen.

      MfG, André Laugks