Abfrage nach Anfangsbuchstaben

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

  • Abfrage nach Anfangsbuchstaben

    Morgen :-)

    habe eine Buchstabenreihe von A-Z. Drückt man nun einen dieser Buchstaben, sollen die Einträge angezeigt werden dessen Anfangsbuchstaben mit eben diesen Buchstaben beginnen.
    Mein Code:
    PHP-Code:
    $sql ="SELECT Left(band,1) AnfBuchstabe
        FROM tbl_bands
        WHERE AnfBuchstabe(band) = '"
    .$_SESSION['Wahl']."'
        GROUP BY AnfBuchstabe
        ORDER BY datumeingang"
    ;
    $resID mysql_query($sql); 
    ja was soll ich sagen es funzt eben nicht
    $_SESSION['Wahl']." ist die Variable in der, der Buchstabe übermittelt wird.

    Hat vielleicht jemand einer eine Idee. ich denke, das das Left Argument(das bei Zahlen funktioniert) eben bei Buchstaben nicht klappt ?!
    Zuletzt geändert von kasIQ; 30.11.2005, 01:32.

  • #2
    Öhh.. Bin nicht sicher, ob ich deine Query (Left()? GROUP BY? ) und Aufgabenstellung richtig verstehe, aber:

    PHP-Code:
    $sql "SELECT band 
    FROM tbl_bands
    WHERE band LIKE '"
    .$_SESSION['Wahl']."%'
    ORDER BY band
    "

    gibt Dir alle Bands mit dem Anfangsbuchstaben aus der Sessionvariable, nach Namen sortiert.

    Vielleicht hilft das weiter. Guts Nächtle!

    Kommentar


    • #3
      Oh man vielen dank :-)))
      kann doch manchmal auch einfach gehen ....gute Nacht

      Kommentar


      • #4
        äh noch was ....

        habe ebenfalls neben den Anfangsbuchstaben A-Z auch noch die Auswahl
        0-9.
        Hat jemand eine Idee wie ich das in url mit übergeben kann, do dass das auch mit der sql Abfrage hinhaut.
        Wenn ich da "...main.php?wahl=0-9" eintrage funktioniert das logischerweise nicht.
        Hat da jemand einen Tip....

        Kommentar


        • #5
          Re: äh noch was ....

          Original geschrieben von kasIQ

          Wenn ich da "...main.php?wahl=0-9" eintrage funktioniert das logischerweise nicht.
          Hat da jemand einen Tip....
          in diesem Fall musst du gesondert abfragen:
          PHP-Code:
          if ($_GET['wahl']=='0-9'
             
          $sql "select ... from ... where left(deineSpalte,1) in ('0','1',...,'9')";
          else
             ... 

          Kommentar


          • #6
            ich kenne aus sql diese form
            PHP-Code:
             select ... from ... where deinespalte Like '[A-Z]%' or deinespalte Like '[0-9]%' 
            weiß aber nicht, ob das in mysql auch funktioniert. probieren geht über studieren.
            EDIT:
            kann mir mal einer erklären, warum das mit [0-9] nicht funktionieren sollte und man das laut asp2php posting machen muss?
            Zuletzt geändert von KamiKatze; 30.11.2005, 10:30.
            ich geh zum lachen in den keller

            Kommentar


            • #7
              ich arbeit nicht mit MySQL, daher kenne ich nicht alle Features, das was ich oben geschrieben habe, ist nur so auf die Schnelle eingetippt, ob das mit [] auch in MySQL möglich ist ... eventuell dann mit REGEX [...]

              Kommentar


              • #8
                PHP-Code:
                Like '[A-Z]%' or deinespalte Like '[0-9]%' 
                funzt nicht in MySQL. Dann würde nach Werten gesucht, die mit dem String '[0-9]' anfangen.

                Dafür gibts REGEXP dauert aber meist länger.

                Aber
                PHP-Code:
                LEFT(band1BETWEEN 0 AND 
                würde funzen.
                Die zehn Gebote sind deswegen so kurz und logisch, weil sie ohne Mitwirkung von Juristen zustande gekommen sind. (Charles de Gaulle)

                Kommentar


                • #9
                  Mit REGEX sieht das ungefähr so aus:
                  PHP-Code:
                  where bla REGEXP '^[A-Z]' 
                  Das [A-Z] ist durch den gewünschten Bereich zu ersetzen....

                  Kommentar

                  Lädt...
                  X