problem mit CURDATE

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

  • problem mit CURDATE

    hi !

    ich habe wiedermal n prob ... ich habe n bestimmten geburtstag als DATE typ in meiner db und jetz habe ich eine suche gebaut wo man ein alter von und bis angibt ... dazu steht folgendes im query string :

    PHP-Code:
    ... 
    WHERE geburtstag between '(TO_DAYS(DATE_FORMAT('CURDATE()', '%Y-%M-%d')))-$von' 
    AND '(TO_DAYS(DATE_FORMAT('CURDATE()', '%Y-%M-%d')))-$bis' 
    was ist daran falsch - bzw kann mans leichter loesen ?

    THX

    EDIT : also es wird mir mit dieser abfrage dauenrd n fehler angezeigt ...

    euer subabrain !
    Zuletzt geändert von subabrain; 13.09.2005, 21:46.

  • #2
    Re: problem mit CURDATE

    Original geschrieben von subabrain
    also es wird mir mit dieser abfrage dauenrd n fehler angezeigt ...
    boah echt?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\apachefriends\xampp\htdocs\neu\suche.php on line 141

      ich glaube ned da dir das was bringt -.- weil es ja im string liegt wie ich schon sagte ^^ - siehst aber glaub selber

      Kommentar


      • #4
        Re: Re: problem mit CURDATE

        boah echt?


        (mal ganz lesen, dumbface ...)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURDATE()', '%Y-%M-%d'))-18' AND 'TO_DAYS(DATE_FORMAT('CURDATE()', '%Y-%M-%d'))-' at line 3

          PS: naja -- wie ich sagte liegt anner syntax

          Kommentar


          • #6
            Original geschrieben von subabrain
            PS: naja -- wie ich sagte liegt anner syntax
            ja dann - verbessere sie doch!


            ein anfang wäre ja schon mal, die dort absolut fehlplatzierten hochkommata rauszuschmeissen - was zum geier sollen die da?


            P.S.: und brich den code um!
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              ein anfang wäre ja schon mal, die dort absolut fehlplatzierten hochkommata rauszuschmeissen - was zum geier sollen die da?
              wenn du mir jetzt noch sagen könntest welche du meinst wäre es echt nett von dir

              Kommentar


              • #8
                na die, die dort absolut keinen sinn ergeben.

                wenn dir nicht bewusst ist, wo sie sinnvoll/nötig sind, und wo absoluter nonsense - dann wäre es echt nett von dir, wenn du dir mal das mysql-manual schnappst, und dir ein bisschen grundlagenwissen aneignest.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  ok

                  Kommentar


                  • #10
                    hab zwar jetz die hochkommata weggelassen - kommt zwar keine fehlermeldung mehr - geht aber nix ^^ ... wenn ich diese ganze sache aber bei select mache und dann einer variable zuweise und dann ausgebe - dann kommt alles ... - kann es sein das es bei where garnicht geht ? - thx - gn8

                    Kommentar


                    • #11
                      wie sieht denn die query nun aus?

                      Kommentar


                      • #12
                        die sieht jetzt so aus :

                        PHP-Code:
                        WHERE geburtstag between DATE_FORMAT(CURDATE(), %Y-%m-%d)-$von
                        AND DATE_FORMAT(CURDATE(), %Y-%m-%d)-$bis 
                        oder habs auch so (was auch ned geht - wird nix ausgegeben...):

                        PHP-Code:
                        WHERE geburtstag DATE_FORMAT(CURDATE(), %Y-%m-%d)-$von
                        AND geburtstag DATE_FORMAT(CURDATE(), %Y-%m-%d)-$bis 
                        - PS : geburtstag ist vom typ date(yyyy-mm-dd)...

                        $von isne zahl die per formular uebergeben wird von 0 - 85
                        $bis isne zahl die per formular uebergeben wird von 0 - 85


                        Ich wuerde euch echt danken .. weil ich denke das da irgendwas ned zusammenpasst .. aber mir ist das sehr wichtig da ich sonst wirklich ned weiter weiss .. aber muesste es echt wissen da ich bisher noch nicht mit diesen art datumsfunktionen inner mysql query gearbeitet habe - DANKESCHOEN !


                        subabrain !

                        Kommentar


                        • #13
                          kannst du mal bitte die gesamte und vor allem fertig zusammengestellte query zeigen, so wie sie an die datenbank geht?

                          und danach gehst du auf www.mysql.org/curdate, findest mindestens ein beispiel, wie man mit der funktion arbeitet und vergleichst ihn mit deiner query.
                          Zuletzt geändert von penizillin; 14.09.2005, 14:14.

                          Kommentar


                          • #14
                            Hier mal alles was dasteht .... :

                            PHP-Code:
                            echo "<table width=100% border='1' style='border-collapse:collapse';><tr><td>benutzername</td><td>PLZ</td><td>ort</td></tr>";

                            include 
                            'mysql_connect.php';

                            $sql "SELECT  plz, benutzername, geschlecht, suche, geburtstag, id, ort FROM 321_mitglieder
                             WHERE plz='
                            $plzort' OR ort='$plzort' OR plz LIKE '$plz%' AND geschlecht='$suche' AND suche='$geschlecht
                            AND geburtstag
                            between DATE_FORMAT(CURDATE(), %Y-%m-%d)-
                            $von AND DATE_FORMAT(CURDATE(), %Y-%m-%d)-$bis ";

                             
                            $result mysql_query($sql)or die(mysql_error());

                            while(
                            $row mysql_fetch_assoc($result))
                            {
                            $plzdb $row['plz'];
                            $iddb $row['id'];
                            $geschlechtdb $row['geschlecht'];
                            $suchedb $row['suche'];
                            $ortdb $row['ort'];
                            $geburtstagdb $row['geburtstag'];
                            $benutzernamedb $row['benutzername'];


                            echo 
                            "<tr><td><a href='?content=user&id=$iddb'>$benutzernamedb</a></td><td>$plzdb</td><td>$ortdb</td></tr>";


                            }

                            echo 
                            "</table>"
                            PS: auf der Seite war ich schon ziemlich oft -- deswegen frage ich ja hier nach - weil ich dort nicht weiterkomme ... also .. da der befehl ja grundsätzlich geht -- wie ich bereits probiert habe und es wohl daran liegt das geburtstag die form date(yyyy-mm-dd) in der datenbank hat und curdate ebenfalls bei nicht veränderung diesen wert yyyy-mm-dd ausgibt - aber da ich ja eine zahl im rahmen von 0 bis 85 dazuaddiere (dies entspricht $von bzw $bis) wird der wert von curdate verändert zu yyyymmdd und daher scheints wohl abgleich probleme zugeben da ich ja dann nach dem geburtstag yyyy-mm-dd frage (yyyy-mm-dd between yyyymmdd AND yyyymmdd) ... kann es daran liegen ?

                            thx !


                            subabrain !
                            Zuletzt geändert von subabrain; 14.09.2005, 14:56.

                            Kommentar


                            • #15
                              das Ergebnis von

                              DATE_FORMAT(CURDATE(), %Y-%m-%d)-$von

                              dürfte so was wie 2005-09-14-18 sein. Frage: was soll denn der Sch**ß Schau dir INTERVALS mal an

                              Kommentar

                              Lädt...
                              X