Announcement

Collapse
No announcement yet.

funktion in sql_query ?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • funktion in sql_query ?

    Hallo,
    ich habe ein Problem mit den Datum aus meiner DB.
    Das Format der Daten ist wie folgt formatiert in der DB:
    17 10 2008 10:23
    (datetime default NULL)

    Nun muss ich alle Datensätze aus der DB laden, welche ein von mir bestimmtes Datum enthalten (Die Uhrzeit muss weg)
    Da meistens ein Datum so ausgegeben wird: 17-10-2008 09:52
    habe ich eine funktion gebastelt, welche NUR d m Y aus dem Datum herausselektiert und die - durch ein Leerzeichen ersetzt.

    Jedoch bekomme ich alles nicht so wirklich gut hin.
    Kann mir jemand helfen?
    Momentane Fehlermeldung:
    Falsche Syntax.

    Code inkl. Funktion:
    PHP Code:
    //$datum ist z.B. "17-10-2008 05:21"
    function get_zb_info($datum)
    {
        
        
    $mssqlresult mssql_query("SELECT Z_ZDatum
                                      FROM zeitbuchungen
                                     WHERE "
    .conv_time_dmy("Z_ZDatum")." = ".conv_time_dmy($datum));
    //Den Returnwert lasse ich kurz weg
    }

    //Die Funktion:
    function conv_time_dmy($datum)
    {
        return 
    str_replace("-"," ",substr($datum,0,10));

    Kann mir jemand helfen?
    Wäre echt super

    Vielen Dank

    Grüße
    Zuletzt editiert von PHPMorpheus; 17.10.2008, 12:54.

  • #2
    Hallo,

    du kannst doch in einem Select-Statement keine PHP-Funktion verwenden! Hier solltest du auf die Datumsfunktionen des jeweiligen DBMS zurückgreifen.

    Der Abfragestring der in deinem Beispiel an die DB geht würde so aussehen:
    [highlight=sql]
    SELECT Z_ZDatum
    FROM zeitbuchungen
    WHERE Z_ZDatum = 17 10 2008
    [/highlight]

    Das führt natürlich zwangsläufig zu einer Syntaxfehlermeldung.

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Originally posted by Falk Prüfer View Post
      Hallo,

      du kannst doch in einem Select-Statement keine PHP-Funktion verwenden! Hier solltest du auf die Datumsfunktionen des jeweiligen DBMS zurückgreifen.

      Der Abfragestring der in deinem Beispiel an die DB geht würde so aussehen:
      [highlight=sql]
      SELECT Z_ZDatum
      FROM zeitbuchungen
      WHERE Z_ZDatum = 17 10 2008
      [/highlight]

      Das führt natürlich zwangsläufig zu einer Syntaxfehlermeldung.

      Gruß Falk
      Warum?
      Du hast vergessen, dass ich bei "WHERE Z_ZDATUM" das Z_ZDatum auch durch die Funktion schicke und somit Z_ZDatum auf d m Y verkürzt wird.
      Ich habe noch nie eine Funktion in eine sql_query eingebaut.
      Ist das denn richtig so?
      Also fehlen mir nur die ' ?

      Comment


      • #4
        Ja natürlich
        Du hast logischer weise Recht.
        Ich hatte ein Brett vorm Kopf.
        Ich kann ja nicht mit Z_ZDatum rechnen!
        Es ist ja nur die Anfrage und noch keine Ausgabe, richtig?

        Comment


        • #5
          Originally posted by PHPMorpheus View Post
          ...Es ist ja nur die Anfrage und noch keine Ausgabe, richtig?
          Richtig!

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            Originally posted by PHPMorpheus View Post
            ...Ich habe noch nie eine Funktion in eine sql_query eingebaut.
            Ist das denn richtig so?
            Nein!
            Originally posted by PHPMorpheus View Post
            ...Also fehlen mir nur die ' ?
            Nein!
            Du kannst innerhalb einer SQL-Anfrage keine PHP-Funktion verwenden. Hier sind nur Funktionen des verwendeten DBMS möglich.
            Für MySQL wäre also bspw. sowas möglich:
            [highlight=sql]
            SELECT Z_ZDatum
            FROM zeitbuchungen
            WHERE date(Z_ZDatum) = '2008-10-17'
            [/highlight]

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment

            Working...
            X