Von bis auslesen und anzeigen lassen

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

  • Von bis auslesen und anzeigen lassen

    Ich steh mal wieder völlig auf dem Schlauch...

    Ich möchte verschiedene Datensätze anzeigen lassen im alter von bis. Jedoch will ich auch nur genau diese aus der DB auslesen.
    Ich muss gestehen das mir nichtmal der Ansatz einfällt das zu relisieren.
    Kann ich diese Abfrage direkt mit in die MySQL Abfrage einbauen? Oder muss ich es später im Script aussortieren?
    Also bitte ich hier nicht um komplette Lösungen sondern nur um Denkansätze

  • #2
    Hi,

    deine äquivalenzrelation zum zerlegen der gesamtmenge in äquivalenzklassen
    ist eine ordnungsrelation auf der zeit(falls du mit alter das alter des datensatzes
    meinst).
    Das kannst du ohne problem in mysql erledigen.

    Es ist sogar recht intuitiv. Umgangssprachlich müsste dein query so lauten.

    "Gib mir alle datensätze deren Alter zwischen Untergrenze und Obergrenze liegt."

    der englische begriff für zwischen ist between. Mit diesen informationen
    und dem mysql-manual solltest du zum ergebnis kommen.

    greets
    (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

    Kommentar


    • #3
      vorsicht! nicht getestet

      SELECT das, und_das
      WHERE
      DATE_ADD(geburtstag, INTERVAL $ab_alter YEAR)>=NOW()
      AND
      DATE_ADD(geburtstag, INTERVAL $bis_alter YEAR)<=
      DATE_ADD(NOW(), INTERVAL $bis_alter- $ab_alter YEAR)
      Slava
      bituniverse.com

      Kommentar


      • #4
        das letzte versteh ich nu gar nich, aber vielleicht könntet ihr mir nochmal kurz weiterhelfen?

        Und zwar hab ich einfach nur die befürchtung das meine syntax vom aufbau her falsch is....
        PHP-Code:
        $ergebnis "SELECT * FROM userdaten WHERE ************ = '$_POST[************]' " .
                
        "AND 'Alter' BETWEEN '$_POST[alter1]' AND '$_POST[alter2]' " .
                
        " ORDER BY 'ID' "
        Es kommt keine Fehlermeldung, aber ein Ergebnis kommt auch nicht. Die variablen sind alle voll, nur die Abgfrage nach dem Alter geht einfach nicht. Was ist hierbei so falsch?

        Kommentar


        • #5
          Und du hast bestimmt folgendes gemacht ? (wie es in den Regeln steht)
          PHP-Code:
          error_reporting(E_ALL);
          mysql_query($ergebnis) OR die(mysql_error()); 
          Werden denn so keine Fehler angezeigt ?

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            japp genau so hab ichs gemacht, kein Fehler aber trotzdem keine Datenausgabe...

            edit
            aktualisieren sollte ich wohl auch..

            Notice: Use of undefined constant ************ - assumed '************' in C:\Programme\xampp\htdocs\kosmik\suche2.php on line 10

            das ist der einzige fehlder der angezeigt wird, aber die ************ abfrage geht sobald ich das between wieder entferne
            Zuletzt geändert von flashmail; 13.10.2006, 14:28.

            Kommentar


            • #7
              PHP-Code:
              $ergebnis "SELECT * FROM userdaten WHERE ************ = '$_POST[************]
              AND 'Alter' BETWEEN '
              $_POST[alter1]' AND '$_POST[alter2]' ORDER BY 'ID'"
              Irgendwie haben mich die Stringverknüpfungen in deiner Query etwas verwundert.
              Und du hast nach der Query OR die(mysql_error()) geschrieben ?
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                die abfrage sieht ok aus. ich hoffe, dass das feld alter auch vom typ date ist.

                gruß
                peter
                Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                Meine Seite

                Kommentar


                • #9
                  wieso vom typ date??

                  Kommentar


                  • #10
                    Weil between wohl nur mit date zusammen funzt...
                    Wenn alter einfach nur eine Zahl ist dann
                    PHP-Code:
                    "... AND Alter > $_POST[alter1] AND Alter < $_POST[alter2]"
                    Gruss

                    tobi
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      ok gut zu wissen das mit dem date...
                      aber so wies mir grad geraten wurde gehts dann gar nich, a bekomm ich dann auch meinen Fehler:

                      the right syntax to use near 'Alter > '' AND Alter < '' ORDER BY ID' at line 1

                      Kommentar


                      • #12
                        Mit welcher Query kriegst du diesen Fehler ? Ggf die ' um ID entfernen. Poste doch mal wieder die aktuelle Query...

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Wenn alter einfach nur eine Zahl ist dann
                          dann klappt das mit between auch

                          gruß
                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Kommentar


                          • #14
                            wahrscheinlich wegen Alter, ist ja auch ein reserviertes wort in mysql

                            Kommentar


                            • #15
                              Mit dieser:
                              PHP-Code:
                              $ergebnis "SELECT * FROM userdaten WHERE ************ = '$_POST[************]' " .
                                      
                              "AND (Alter > '$_POST[alter1]') AND (Alter < '$_POST[alter2]') " .
                                      
                              " ORDER BY ID "
                              (ja ich habs in klammern eingepackt, die meldung kommt aber auch ohne die klammern)
                              kommt dieser fehler:
                              right syntax to use near 'Alter > '') AND (Alter < '') ORDER BY ID' at line 1

                              Kommentar

                              Lädt...
                              X