suatal
Goto Top

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

Content-Key: 128316

Url: https://administrator.de/contentid/128316

Printed on: April 25, 2024 at 00:04 o'clock

Member: SamTrex
SamTrex Oct 30, 2009 at 12:35:55 (UTC)
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
Member: Arano
Arano Oct 30, 2009 at 14:41:01 (UTC)
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
Member: SuatAl
SuatAl Nov 03, 2009 at 06:46:55 (UTC)
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