suatal

MYSQL-DATEDIFF Ausgabe

Hallo an alle,

bin gerade ziemlich am Verzweifeln!!!

Folgendes Problemchen:

Ich habe eine MYSQL-DB mit verschiedenen Terminen. Nun möchte ich anhand von DATEDIFF() das aktuelle Datum mit
diesen Terminen Vergleichen und die Differenz ausgeben lassen.
Die Differenz wird auch ausgerechnet- ich bekomme als Ausgabe leider nur:

ARRAY oder array[1] bzw. resource_id#6

hier der Code: Vielleicht könnt Ihr den Fehler erkennen?

function differenz($termine,$dat) {
    $sql3="SELECT DATEDIFF('$termine','$dat')";  
    $result3=@mysql_query($sql3);
    $r=mysql_fetch_assoc($result3);
    if(!$result3) die('Datenbankfehler3: ' .mysql_error());   
    var_dump($r);      -----------------> Hier kommt z.B. folgende Ausgabe:    array(1) { ["DATEDIFF('2010-10-10','2009-10-30')"]=>  string(3) "345" }   
    echo $r;                ------------------> Hier kommt fogende Ausgabe:      Array
    While($s=mysql_fetch_array($result3))
    {
        echo $s;        ------------------> Hier kommt folgende Ausgabe:      Arraybool(false) 
    } 

Wie bekomme ich denn die 345 aus dem Array $r ausgegeben?

Vielen Dank im voraus!!!

MfG,
SuatAl
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 128316

Url: https://administrator.de/forum/mysql-datediff-ausgabe-128316.html

Ausgedruckt am: 20.05.2025 um 21:05 Uhr

SamTrex
SamTrex 30.10.2009 um 13:35:55 Uhr
Goto Top
Hi,
blicke nicht so ganz durch ....
Aber wenn $r ein Array ist mußt du es mit dem Index ansprechen um den entsprechenden Inhalt auszugeben.

Wenn ich es richtig interpretiere wäre der Index bei dir 3
echo $r(3);

MfG Sam
Arano
Arano 30.10.2009 um 15:41:01 Uhr
Goto Top
Nein nein nein...

..das sollte man doch auf den ersten Blick schon erkennen können !

Der Ansatz mit dem Index ist wohl richtig, aber "3" ist dieser nicht, 3 ist die länge der Zeichenkette (String) des Wertes.
"string(3) "345"" Der String "345" ist 3 Zeichen lang.
Man siehe ins PHP-Manual - var_dump()

Der Index hier lautet: "DATEDIFF('2010-10-10','2009-10-30')", so wie er auch in den eckigen Klammern der var_dump() Ausgabe steht. Weil dies aber nicht gerade leserlich ist solltest du deinen Query etwas modifizieren, etwa so:
SELECT
    DATEDIFF('$termine','$dat') AS `differenz`  
Danach wird die Ausgabe von var_dump() etwa so aussehen:
array(1) {
    ["differenz"]=>  string(3) "345"  
}  


Schönes Wochenende
~Arano
SuatAl
SuatAl 03.11.2009 um 07:46:55 Uhr
Goto Top
Danke für die Tips!!!1

Ich hatte es auch mit dem Index versucht- leider ohne Erfolg face-sad

Danke Arano- dein Ansatz hat mich zum Erfolg geführt!!!!

Grüße,
Suat