EreburX: nur ausgeben wenn anfang ne Zahl ist!

Hi Leutz,
ich will aus einer mysqlDB (zB. "buecher") alle buecher ausgeben, die mit einer Zahl anfangen!
wie kann ich php sagen, das er nur alle buecher mit einer zahl am anfang ausgeben soll ?
//------------------------
in der DB:
StarWars - Episode I
3 Engel für Charly
Die Bibel
24 Stunden Angst
soll ausgeben:
24 Stunden Angst
3 Engel für Charly
soll nicht ausgaben:
Die Bibel
StarWars - Episode I
//------------------------
Danke für eure Hilfe

  1. Holladiewaldfee,

    mit is_numeric($suchstring[0]).

    Allerdings kannst Du natürlich auch schon die Datenbankabfrage entsprechend gestalten. Ob MySQL so etwas wie eine is_numeric-Funktion anbietet weiß ich nicht, falls nicht, mußt Du wohl was mit 'nem regulären Ausdruck basteln ...

    Ciao,

    Harry

    --
      Intelligenz ist nicht zwingend etwas positives.
      Man weiß erst, was man hatte, wenn man es verloren hat.
    1. Holladiewaldfee,

      mit is_numeric($suchstring[0]).

      Allerdings kannst Du natürlich auch schon die Datenbankabfrage entsprechend gestalten. Ob MySQL so etwas wie eine is_numeric-Funktion anbietet weiß ich nicht, falls nicht, mußt Du wohl was mit 'nem regulären Ausdruck basteln ...

      Ciao,

      Harry

      ohh harry,

      ich musste das natuerlich mal wieder kompliziert gestalten :)
      aber hier mal ne moeglichkeit wie man das wohl nicht machen sollte oder man es nur macht, wenn man andere funktionen nicht so im kopf hat.

      <?php

      $test = "34 Engel fuer charly";

      if ( @(substr($test,0,1) / substr($test,0,1)) != 1)
         echo "MUELL";
      else
       echo "alles OK";

      ?>

      1. hui,
        thx für die schnelle hilfe!
        ich werde mal nen bisschen basteln, mal schauen was dabei raus kommt!
        MfG
        EreburX

    2. ok,
      jetzt habe ich noch eine frage:
      wie kann ich jetzt alles ausgeben, was mit dem buchstaben "a" anfängt ?
      THX
      EreburX

      1. Holladiewaldfee,

        wie kann ich jetzt alles ausgeben, was mit dem buchstaben "a" anfängt ?

        Auf PHP-Seite: $bla[0]=="a"
        Auf Datenbankseite: "... WHERE SUBSTR(feld, 1, 1)='a'"

        Aufpassen, MySQL fängt im Gegensatz zu PHP beim Zählen der Position mit 1 und nicht mit 0 an.

        Du könntest leichter natürlich auch "... WHERE LEFT(feld, 1)='a'" verwenden

        Lies Dir einfach mal die Seite durch, die Romy schon verlinkt hat.
        http://www.mysql.com/doc/en/String_functions.html

        Ciao,

        Harry

        --
          Intelligenz ist nicht zwingend etwas positives.
          Man weiß erst, was man hatte, wenn man es verloren hat.
      2. Hi,

        jetzt habe ich noch eine frage:
        wie kann ich jetzt alles ausgeben, was mit dem buchstaben "a" anfängt ?

        select bla from blabla where substring(bla,0,1)='a'
        Am Besten Du bringst noch ein bisschen Upper oder Lower-Case mit hinein, damit das dann auch egal ist
        select bla from blabla where substring(UPPER(bla),0,1)='A'

        und für alles weitere guckst Du Dir bitte die Stringfunktionen in der mysql-Doku an, ich hatte den Link schon gepostet, dort findest Du alles.

        Falls Du alles erst im Nachhinein vom Script auswerten lassen willst gehe zu www.php.net und suche dort nach Stringfunktionen, die machen alles was DU nur willst.
        http://www.php.net

        ein bisschen selberlesen schadet nicht

        ciao
        romy

      3. Hi,»» ok,

        jetzt habe ich noch eine frage:
        wie kann ich jetzt alles ausgeben, was mit dem buchstaben "a" anfängt ?
        THX
        EreburX

        ciao
        romy

        1. Hi,

          bei mir stimmt nicht:
          substring muss bei 1 anfangen nicht bei 0

          bei Harray stimmt nicht:
          die Funktion heisst substring nicht substr

          sorry für das Doppelposting, habe die falsche Taste erwischt

          ciao
          romy

  2. Hi,

    ich will aus einer mysqlDB (zB. "buecher") alle buecher ausgeben, die mit einer Zahl anfangen!

    es gibt in der Doku Methoden wie z.B. substring und ASCII() http://www.mysql.com/doc/en/String_functions.html
    damit könntest Du das erste Zeichen ausschneiden und in ein Ascii-Zeichen umwandeln und dann prüfen ob es in dem Zahlenbereich liegt
    (wenn Du den nicht kennst, such mal nach Ascii-Tablelle)

    ciao
    romy

  3. Hallo
    das geht mit REGEXP in der MYSQL abfrage die sieht dann z.b. so aus:
    SELECT * FROM tier WHERE name REGEXP "[1]";

    hier kannst du sehen was man alles mit REGEXP machen kann:
    http://www.google.de/search?hl=de&ie=UTF-8&oe=UTF-8&q=regexp+like+where+select&btnG=Google+Suche&meta=lr%3Dlang_de

    wenn du nur sachen mit a oder A sehen willst ist es dann:

    SELECT * FROM tier WHERE name REGEXP "[2]";

    mfg

    Alex


    1. 0-9 ↩︎

    2. aA ↩︎