Alle Bilder eines Kameramodells

  • Ooops,


    da haben wir das Problem!


    Die fragliche SQL-Abfrage vergleicht das Datenbankfeld und den eingegebenen Text auf Übereinstimmung, lediglich Groß-/Kleinschreibung wird je nach Einstellung in deinem SQL-Server evtl. ignoriert.


    Das heißt: Du musst den Text exakt so eingeben, wie er in der Datenbank steht (nur Groß-/Kleinschreibung kannst du evtl außer Acht lassen.


    Wenn in der DB z.B. steht: 'Canon PowerShot A590 IS', dann wird der Vergleich mit 'Canon' oder 'shot' oder usw. usw. das Ergebnis UNGLEICH bringen, und die Benutzerabfrage endet dann mit '0 Nix gefunden'.


    Al

  • hallo planlos,

    yep, das war die lösung. danke für die rasche info.
    gibt es denn eine andere lösung, die auch einen teilnamen des modells findet?
    ich denke da an so etwas wie eine INSTRING-funktion, wie man sie aus basic kennt.
    ich spreche mit meiner frage weiterhin auch die anderen user des forums mit der bitte um vorschläge an.

    gruß
    billy3


  • gibt es denn eine andere lösung, die auch einen teilnamen des modells findet?


    Sofern Du auf die Laufzeitabfrage des zu suchenden Strings verzichten kannst:


    Ersetze

    Code
    1. (x.data = [COLOR=black]'@text@'[/COLOR])

    durch

    Code
    1. (x.data like [COLOR=black]'%Suchstring%'[/COLOR])


    (Das setzt aber immer noch voraus, dass Du das entsprechende Exif-Tag importiert hast...)


    Viele Grüsse,
    Ralf


  • gibt es denn eine andere lösung, die auch einen teilnamen des modells findet?
    ich denke da an so etwas wie eine INSTRING-funktion, wie man sie aus basic kennt.


    In SQL gibt es auch Funktionen, die man in Abfragen einsetzen kann. Z.B. (aus der Doku von MySql):


    ----------------------------------------
    INSTR(str,substr)


    Returns the position of the first occurrence of substring substr in string str. This is the same as the two-argument form of LOCATE(), except that the order of the arguments is reversed.


    mysql> SELECT INSTR('foobarbar', 'bar');
    -> 4
    mysql> SELECT INSTR('xbar', 'foobar');
    -> 0


    This function is multi-byte safe, and is case sensitive only if at least one argument is a binary string.
    ----------------------------------------


    Ich glaube, dass INSTR SQL-Standard ist, also auch in anderen Servern existieren sollte.


    In der Abfrage einfach ändern:


    (x.data = '@text@')
    ersetzen durch
    (INSTR(x.data, '@text@') > 0)


    und schon gehts.


    Im Falle von MySql bitte beachten, dass zwischen dem Funktionsnamen und der Klammer Auf kein Leerzeichen stehen darf!


    Al


  • Sofern Du auf die Laufzeitabfrage des zu suchenden Strings verzichten kannst:


    Code
    1. (x.data like [COLOR=black]'%Suchstring%'[/COLOR])


    Warum? Imabas behandelt auch das korrekt:


    Code
    1. (x.data like [COLOR=black]'%@text@%'[/COLOR])


    Al