php befehle in abfrage?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php befehle in abfrage?

    Hallo, nochmal eine frage:

    ich habe eine spalte tfr da steht drin z.b.:

    15-02-2004;29-02-2004

    was ich brauch für die abfrage wäre nur 29-02-2004

    könnte ich jetzt direkt in einer abfrage sowas evtl. machen

    ... FROM xyz WHERE TO_DAYS(explode(";",tfr) < DATE_SUB(NOW(), INTERVAL 30 DAYS)

    das nur theoretisch, ... weiß ich ob sowas überhaupt geht?

    danke

    fra7l7

  • #2
    explode wird unter sql nicht funktionieren. MID() wäre da eher sinnvoll(er)
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      genau, das passt


      aber jetzt habe ich 29-02-2004 die ich für die TO_DAYS fkt ja noch umkehren muß? oder gibts ne andere fkt die 29-02-2004 für einen sauberen vergleich mit < DATE_SUB(NOW(), INTERVAL 30 DAYS) umwandelt

      Kommentar


      • #4
        du musst MID() eben anders anwenden.

        jahr, monat, tag einzeln auslesen und mit CONCAT() /CONCAT_WS() neu zusammen basteln. dann geht auch TO_DAYS() usw.
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Code:
          TO_DAYS(CONCAT(MID('tfr',0,2),MID('tfr',3,5),MID('tfr',6,10)))

          EDIT:
          shit zu freu gedrückt ... so oder was? CONCAT_WS hab ich noch nie gesehen?

          Kommentar


          • #6
            und jetzt? was willst du uns damit sagen?

            aber BTW ....
            wo sind die '-'?
            und wolltest du nciht erst NACH dem ; das zeugs haben?

            EDIT:
            du sollst nicht editieren!
            CONCAT_WS(), aber es geht auch mit CONCAT()

            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              war nur schnell gepostet um des meister einvernehmen zu erhalten ... so möge er sich jetzt in gnade zurückziehen, auf gutheissen des meisters, um an der vervollkommnung derer abfrage zu arbeiten ....

              Kommentar


              • #8
                jojo. ich warte mal auf deine query....
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar


                • #9
                  Code:
                  "SELECT auftrags_nr FROM auftrags_management WHERE TO_DAYS(CONCAT(MID('survey_tfr',11,2),'-',MID('survey_tfr',14,2),'-',MID('survey_tfr',17,4))) < DATE_SUB(NOW(), INTERVAL 30 DAY)"
                  ok query bring keine fehler aber auch kein resultat. bin mir aber sicher das der CONCAT MID kram mit 15-12-2003;12-12-2003 korrekt ist. unsicher bin ich ehr am konzept. Also ich brauche all datensätzt die z.b.
                  12-12-2003 + 30 Tage = 22-01-2004 < NOW() sind

                  Ist da to_dayd richtig? oder nehm ich ne andere funktion?

                  Kommentar


                  • #10
                    als allererstes brichst du mal deine query ein wenig um!

                    zum anderen macht man sich mal einen normale kontrollausgabe.

                    desweiteren würde ich mal sagen, dass funktionen und WHERE sich beissen. -> HAVING
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      ok, mach ich zeilenumbrüche -> hab jetzt so aber mein vorhaben

                      12-12-2003 + 30 Tage = 22-01-2004 < NOW()

                      fkt so auch nicht:

                      übrigens = 30 DAY wird später ne variable

                      EDIT:

                      Hab noch was geändert muß ja heißen:
                      CONCAT(MID('survey_tfr',17,4),'-',MID('survey_tfr',14,2),'-',MID('survey_tfr',11,2)) ... fkt aber och net





                      PHP-Code:
                      mysql_query("SELECT auftrags_nr 
                      FROM auftrags_management 
                      HAVING UNIX_TIMESTAMP(CONCAT(MID('survey_tfr',11,2),'-',MID('survey_tfr',14,2),'-',MID('survey_tfr',17,4))) 
                      < UNIX_TIMESTAMP(DATE_SUB(NOW(), INTERVAL 30 DAY))"
                      ); 
                      zum anderen macht man sich mal einen normale kontrollausgabe.
                      was meinsten damit
                      Zuletzt geändert von frank7l7; 10.02.2004, 20:12.

                      Kommentar


                      • #12
                        ok, mach ich zeilenumbrüche -> hab jetzt so aber mein vorhaben
                        AUCH OBEN BITTE!

                        wo kommt der string 'survey_tfr' her?

                        was meinsten damit
                        nicht nur in WHERE/HAVING sondern auch mal beim SELECT und dann ohne WHERE/HAVING
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          survey_tfr ist ja eine spalte der tabelle wo eben das drin steht z.b.
                          15-02-2004;29-02-2004

                          aber hattes recht ich hab eben das mal mit select ausgegeben ohne bedinung ergebnis: - - (keine zahlen)?


                          was mach ich falsch

                          Kommentar


                          • #14
                            JUHU jettz gehts, ... oooh PRIMA dein HINT mit dem String war des rätsels Lösung

                            PHP-Code:
                            CONCAT(MID(survey_tfr,18,4),'-',MID(survey_tfr,15,2),'-',MID(survey_tfr,12,2)) 
                            udn ich hab mich um eine stellen vertan ... SUPPPPAAAAAA danke

                            Kommentar

                            Lädt...
                            X