Thomas: lower und like bei oracle

Hallo zusammen!
Ich habe eine Datenbankabfrage fertiggestellt und bin gerade Dabei meine Bugs auszumerzen.
Ich frage meine DB (Oracle) durch ein Formular über PHP ab.
Den Einzigsten Bug den ich nun hab ist folgender:

Ich habe eine Suchfunktion eingebaut, so dass man in meiner Tabelle bestimmte Sachen suchen kann zB Kunde oder Nachname.

Gestern hab ich es endlich geschafft, dass man zB kundennamen nicht nur gross sondern auch klein reinschreiben kann:

$oci =  "select * from denic_handle where lower(kunde) = lower('$textfield')";

Soweit toll Doch ich habe auch sehr lanhe Kundennamen in der Datenbank. Das Problem ist, dass ich aber genau den GANZEN Namen eingeben muss, damit er sucht. Ich kann es zwar gross und  klein schreiben wie ich will, aber ich will auch zB nur 'B' eingeben können und er spuckt mir dann alle Kunden mit B raus. Ich weiß, dass es mit "like" geht. Ich weiß nur nicht wie ich das mit "lower" kombinieren soll, damit es auch klappt!

Gruß, Thomas

  1. $oci =  "select * from denic_handle where lower(kunde) = lower('$textfield')";

    Hi...

    statt des "=" evt. das "like" verwenden
    etwa so:

    select *
    from
       denic_handle
    where
       lower(kunde) LIKE lower('%$textfield%')

    sicher, dass dein PHProzessor $textfield gleich in dem String (zwischen den Hochkommas) mit dem Wert von $textfield ersetzt?
    wenn ich PHP wäre, wäre das alles ein String und $textfield wäre eine Zeichenkette darin

    Gruß, Frank

    1. Moin!

      select *
      from
         denic_handle
      where
         lower(kunde) LIKE lower('%$textfield%')

      sicher, dass dein PHProzessor $textfield gleich in dem String (zwischen den Hochkommas) mit dem Wert von $textfield ersetzt?
      wenn ich PHP wäre, wäre das alles ein String und $textfield wäre eine Zeichenkette darin

      Dann wärst du aber ein ziemlich ungewöhnliches PHP.

      Innerhalb von "..."-Zeichenketten werden Variablennamen durch den Variablenwert ersetzt. Bei einfachen Variablen fügt man sie einfach so ein, bei komplexeren Variablen (Arrays, Hashes) muss man sie in geschweifte Klammern einschließen - oder den String zusammenaddieren.

      $string = "Ein String mit $variable und {$hash['key']} drin, und mit ".$extra['addiertem']." Hash hinten";

      - Sven Rautenberg

      1. Hi Sven,

        Dann wärst du aber ein ziemlich ungewöhnliches PHP.

        auch gut... wie sagt man, "lebe lieber ungewöhnlich" ?

        Innerhalb von "..."-Zeichenketten werden Variablennamen durch den Variablenwert ersetzt. Bei einfachen Variablen fügt man sie einfach so ein, bei komplexeren Variablen (Arrays, Hashes) muss man sie in geschweifte Klammern einschließen - oder den String zusammenaddieren.

        interessant, man lernt nie aus... vielleicht finde ich irgendwann die Zeit nach .net, mich ausgiebig mit den evt. vorhandenen Vorzügen von PHP zu beschäftigen....

        Gruß.. so long
        Frank

        $string = "Ein String mit $variable und {$hash['key']} drin, und mit ".$extra['addiertem']." Hash hinten";

        • Sven Rautenberg
    2. Hi Frank!

      Vielen lieben Dank hat wunderbar geklappt :)

      Gruß, Thomas