Probleme mit selectdiff

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

  • #16
    PHP-Code:
    $resultpuh mysql_query($querypuh) or die(" Keine Verbindung zur Datenbank"); 
    ist natürlich völlig sinnfrei


    Naja, nicht ganz. Dem User kann ich schließlich kein SQL-Fehlermeldung zumuten.
    Gruß, Coni
    ~~ codito ergo sum - ich code, also bin ich! ~~

    Kommentar


    • #17
      Liegt daran, daß ich an dem Query gerade nebenher alles Mögliche rumprobiere.

      Mir würde schon reichen, wenn jemand ein Beispielquery mit datediff zeigen würde...
      dann mach ich es einfach genauso mit meinen Angaben.

      PS: Ob da ein Datum drin steht oder lastlogin, ist egal, bringt die selbe Fehlermeldung.
      Gruß, Coni
      ~~ codito ergo sum - ich code, also bin ich! ~~

      Kommentar


      • #18
        Original geschrieben von Coniaric
        Naja, nicht ganz. Dem User kann ich schließlich kein SQL-Fehlermeldung zumuten.
        Dann bring ihm halt eine brauchbare Fehlermeldung (bzw. besser sogar noch eine Fehlerseite, ich halte auch einen HTTP Statuscode 500 in solchen Fällen für vertretbar).

        Ihm etwas vorzulügen, weil du deine Queries nicht auf die Reihe bekommst, ist jedenfalls ein seltsames Vorgehen.
        Dann mute dem User lieber gleich das Gesamtwerk nicht zu ...
        Mir würde schon reichen, wenn jemand ein Beispielquery mit datediff zeigen würde...
        http://dev.mysql.com/doc/refman/4.1/...functions.html
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #19
          Werd nicht wieder eklig, Wahsaga.
          Ich hab niemandem etwas vorgelogen.
          Ich hab lediglich folgende Möglichkeiten durchprobiert:

          PHP-Code:
          SELECT FROM profile WHERE datediff(yyyygeburtsdatum2007-10-10) > 1

          SELECT 
          FROM profile WHERE datediff('yyyy'geburtsdatum2007-10-10) >= 1

          SELECT 
          FROM profile WHERE datediff('yy'geburtsdatum2007-10-10) >= 1

          SELECT 
          FROM profile WHERE datediff(yygeburtsdatum2007-10-10) >= 1

          SELECT 
          FROM profile WHERE datediff('year'geburtsdatum2007-10-10) >= 1

          SELECT 
          FROM profile WHERE datediff(yeargeburtsdatum2007-10-10) >= 1

          // und das ganze nochmal mit lastlogin statt dem Datum. 
          EDIT:
          ....alles mit genau der selben Fehlermeldung
          Die Seite hatte ich auch schon gefunden und dachte eigentlich, daß
          ich es so gemacht hatte.

          Aber egal, lassen wir das, ich probier lieber selber rum.
          Wenn Wahsaga ins Spiel kommt mit seiner ständig schlechten Laune, verwend ich lieber ein paar Stunden mehr darauf.

          Sorry, nicht persönlich nehmen.

          Gruß, Coni
          ~~ codito ergo sum - ich code, also bin ich! ~~

          Kommentar


          • #20
            Original geschrieben von Coniaric
            Ich hab niemandem etwas vorgelogen.
            Ich bezog mich auf deine "Begründung" für die Ausgabe einer absurden Fehlermeldung.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #21
              Re: Probleme mit selectdiff

              Original geschrieben von Coniaric

              PHP-Code:
              $querypuh="SELECT * FROM profile WHERE (DateDiff(year, geburtsdatum, getdate()) > 1)"
              Was möchtest du eigentlich herausfinden? Sollen das Leute sein, die älter als ein Jahr sind? Woher hast du das, dass datediff drei Parameter akzeptiert?
              ich glaube

              Kommentar


              • #22
                Ich gehe davon aus, daß der User mit Programmieren nix am Hut hat.
                Der kann mit Statuscodes nichts anfangen.
                Er sieht nur, daß etwas nicht funktioniert.
                In das "or die" kommt später eine schön formulierte und formatierte
                Meldung.
                Ich will das nur nicht vergessen, deswegen steht eben irgendwas drin.

                Daß der Syntax nixht korrekt ist - nun, das weiß ich auch ohne

                #1064 - 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 ' NOW( ) ) >= 1
                LIMIT 0, 30' at line 1



                Das Manual gibt irgendwie auch nichts rechtes her.
                Aber ich komm schon noch drauf.
                Version ist es schonmal auch nicht...
                Gruß, Coni
                ~~ codito ergo sum - ich code, also bin ich! ~~

                Kommentar


                • #23
                  Re: Re: Probleme mit selectdiff

                  Was möchtest du eigentlich herausfinden? Sollen das Leute sein, die älter als ein Jahr sind? Woher hast du das, dass datediff drei Parameter akzeptiert?

                  Statt 1 kommt später eine Variable rein. Erstmal einfach halten...
                  Das mit dem Datediff hab ich so gefunden:

                  PHP-Code:
                  DATEDIFF datepart startdate enddate 
                  Ist das nicht korrekt?

                  EDIT:


                  Das steht unter geburtsdatum in de DB als DATE-Feld:

                  1957-02-04
                  1985-03-12
                  1984-03-13
                  1985-03-12


                  Zuletzt geändert von Coniaric; 06.03.2007, 15:37.
                  Gruß, Coni
                  ~~ codito ergo sum - ich code, also bin ich! ~~

                  Kommentar


                  • #24
                    Versuchs doch mal mit folgender Query

                    PHP-Code:
                    $sql "SELECT 
                                * 
                            FROM 
                                profile
                             WHERE
                                TO_DAYS(geburtsdatum)-TO_DAYS(NOW()) < 0
                           "

                    Die Bedingung solltest Du natürlich noch an Dein gewünschtes Ergebnis anpassen...

                    Grüße ausm Nachbarort

                    Kommentar


                    • #25
                      Keine Ahnung, irgendwo ist das vielleicht korrekt. Ich finde aber nur folgendes
                      DATEDIFF(expr,expr2)

                      DATEDIFF() gibt die Anzahl der Tage zwischen dem Startdatum expr und dem Enddatum expr2 zurück. expr und expr2 sind DATE- oder DATETIME-Ausdrücke. Nur die Datumsanteile der Werte werden in der Berechnung verwendet.

                      mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
                      -> 1
                      mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
                      -> -31
                      Ich würde es jetzt z.B mit Date_sub versuchen, also ungefähr so

                      PHP-Code:
                      WHERE geburtsdatum DATE_SUB(NOW(), INTERVAL 1 YEAR); 
                      ich glaube

                      Kommentar


                      • #26
                        Nachbarort?
                        Woher denn?

                        Ich wollte es ja eigentlich mit Datdiff lösen...
                        Dein Query funzt zumindest mal, danke! Muß jetzt nur noch
                        rauskriegen, wie ich das mit dem Alter in Jahren mache.
                        Soll später mal sowas geben:

                        PHP-Code:
                        $alter1=20;
                        $alter2=30;

                        SELECT FROM profile WHERE geburtsdatum>=$alter1 && geburtsdatum<=$alter2 
                        Nur, daß ich eben von einem Datum ausgehen muß, da sich das Alter ja immer ändert.
                        Gruß, Coni
                        ~~ codito ergo sum - ich code, also bin ich! ~~

                        Kommentar


                        • #27
                          WHERE geburtsdatum > DATE_SUB(NOW(), INTERVAL 1 YEAR);
                          Öh... sowas hab ich noch garnicht gesehen. Was gibt das aus?
                          Gruß, Coni
                          ~~ codito ergo sum - ich code, also bin ich! ~~

                          Kommentar


                          • #28
                            Re: Re: Probleme mit selectdiff

                            Original geschrieben von ministry
                            Was möchtest du eigentlich herausfinden?
                            ich hoffe, ich habe nichts überlesen.... kann es sein, dass diese frage nicht beantwortet wurde? wenn ich richtig liege, rück doch mal mit der sprache raus... dann kann man mal gezielt an einer lösung arbeiten...
                            **********
                            arkos
                            **********

                            Kommentar


                            • #29
                              Re: Re: Re: Probleme mit selectdiff

                              ich hoffe, ich habe nichts überlesen.... kann es sein, dass diese frage nicht beantwortet wurde? wenn ich richtig liege, rück doch mal mit der sprache raus... dann kann man mal gezielt an einer lösung arbeiten...
                              Der übernächste post über Dir, da steht, was ich will.
                              Ich will praktisch nach in der Eingabe zwei Zahlen haben, z.B. 20 und 30.

                              In der DB sind Geburtsdaten. Der Query soll also alles raussuchen,
                              was größer 20 und kleiner 30 Jahre alt ist. Meinetwegen auch mit between.

                              Man muß nur beachten, daß auch "egal" drin stehen kann (also alles suchen)
                              und >70 ohne weitere Einschränkung.
                              Aber das kann ich dann auch mit nem IF machen...

                              EDIT:
                              Was mir gerade aufgefallen ist beim Googlen:
                              In anderen Foren und Seiten wird immer zu letzt von datediff
                              mehr oder weniger abgeraten, bzw. eine andere Lösung
                              praktiziert...

                              Zuletzt geändert von Coniaric; 06.03.2007, 16:02.
                              Gruß, Coni
                              ~~ codito ergo sum - ich code, also bin ich! ~~

                              Kommentar


                              • #30
                                Original geschrieben von Coniaric
                                Nachbarort?
                                Woher denn?

                                Ich wollte es ja eigentlich mit Datdiff lösen...
                                Dein Query funzt zumindest mal, danke! Muß jetzt nur noch
                                rauskriegen, wie ich das mit dem Alter in Jahren mache.
                                Soll später mal sowas geben:

                                PHP-Code:
                                $alter1=20;
                                $alter2=30;

                                SELECT FROM profile WHERE geburtsdatum>=$alter1 && geburtsdatum<=$alter2 
                                Nur, daß ich eben von einem Datum ausgehen muß, da sich das Alter ja immer ändert.
                                Nadann... das hättest Du auch gleich sagen können.

                                WHERE geburtsdatum < DATE_SUB(NOW(), INTERVAL 20 YEAR) AND geburtdatum > DATE_SUB(NOW(), INTERVAL 30 YEAR)

                                Und aus Nordheim

                                Kommentar

                                Lädt...
                                X