Fehler in Suche

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

  • Fehler in Suche

    Hallo Profis,

    hab mal wieder ein problem, was sonst...
    Ich will eine Suche auf unserer Seite bauen und sitze nun schon Tage ohne wirklichen Erfolg.
    Ich hab im Forum vieles gefunden, aber alles was damit zutun hatte ging auch nicht.
    (Ich poste nur, wenn ich wirklich nichts finde )

    die Query:
    PHP-Code:
    SELECT FROM firmen WHERE geschaeftsart 'Großhandel' AND 
    branche='Auto & Verkehr' AND kat 'Abschleppstangen' OR kat 
    'Akkumulatoren und Batterien' OR kat 'Autoalarmanlagen' 
    order by firma 

    Es ist nichts mit Großhandel in der Testdatenbank und Trotzdem
    werden 2 Treffer ausgegeben.
    Ich hab mit Klammern versucht (Mathematik Regel), mit Like und doch wieder = usw. immer das selbe, oder es wurde bei anderen Kriterien wieder nichts gefunden, wobei etwas gefunden werden sollte.
    Hab mir auch schon die Volltextsuche angesehen, aber ich glaube das kann meine DB noch nicht.
    Meine Schleife denke ich ist in Ordnung, da alles so in der Query vorkommt wie ich es wollte.

    Vielen dank im Vorraus
    Zuletzt geändert von webguru; 18.07.2005, 13:14.

  • #2
    kat solltest du klammern
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #3
      Vielen Dank,

      hatte ich schon, wahrscheinlich verkehrt....
      So:
      PHP-Code:
      (kat 'Abschleppstangen') OR (kat 'Akkumulatoren und Batterien'
      Oder So:
      PHP-Code:
      (kat 'Abschleppstangen' OR kat 'Akkumulatoren und Batterien'
      ????

      ...sorry immer wieder diese Anfänger-Fragen


      EDIT:
      es geht so oder so nicht...vielleicht noch ne Idee?


      Das Großhandel-Problem scheint wohl zu klappen, aber nun gibt er wieder Firmen aus, wo die Kat überhaupt nicht zu trifft, und wo es zu trifft gibt er nicht aus. *grübel*

      PHP-Code:
      SELECT FROM firmen WHERE geschaeftsart 'Einzelhandel' 
      OR geschaeftsart 'Produzent' OR geschaeftsart 'Dienstleister' AND 
      branche='Auto & Verkehr' AND (kat 'Abschleppstangen'order by firma 
      Suchergebnis : 1 Treffer

      TEST AG
      Einzelhandel -> Richtig
      Aber kat != Abschleppstangen....


      Mache doch da was enorm falsch...oder??


      Zuletzt geändert von webguru; 18.07.2005, 13:14.

      Kommentar


      • #4
        Transfer ist nicht so deine Stärke, kann das sein?

        Wenn für eine Spalte mehr als ein Wert erlaubt ist und du diese Werte durch OR verknüpfst, dann musst du darum Klammern setzen

        spalte1 = 1 AND (spalte2 = 2 OR spalte2 = 4)

        Und brich endlich deine Beiträge so um, dass ich nicht scrollen muss
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          Wenn es meine Stärke wäre, würde ich mir nicht hier rumquälen...

          Umbrüche gemacht, - nicht sonderlich pofessionell, dieses Forum...

          Und Jetzt zum Thema:
          Danke für den Tip..!
          Versuche ich sofort.

          Kommentar


          • #6
            PHP-Code:
            SELECT FROM firmen WHERE (geschaeftsart 'Einzelhandel' 
            OR geschaeftsart 'Produzent' OR geschaeftsart 'Dienstleister'
            AND 
            branche='Auto & Verkehr' AND (kat 'Abschleppstangen' 
            OR kat 'Abschleppstangen'order by firma 
            Suchergebnis : 0 Treffer
            (2 sollten es sein...)

            Klammern gesetzt...doch nichts wirklich erfolgreicher...

            Sollte ich statt kat='$suchwort' kat LIKE '%$suchwort%' verwenden?
            Es können ja mehrere in der kat(Tabelle) stehen, wobei dieses eine suchwort rausgefischt werden muss...oder geht dann auch = ?

            Das gleiche gilt natürlich auch für die geschaeftsart....

            Kommentar


            • #7
              Original geschrieben von webguru
              PHP-Code:
              SELECT FROM firmen WHERE (geschaeftsart 'Einzelhandel' 
              OR geschaeftsart 'Produzent' OR geschaeftsart 'Dienstleister'
              AND 
              branche='Auto & Verkehr' AND (kat 'Abschleppstangen' 
              OR kat 'Abschleppstangen'order by firma 
              Suchergebnis : 0 Treffer
              (2 sollten es sein...)
              Und was für Inhalte haben die 3 geprüften Spalten bei diesen 2 Datensätzen?
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                1.
                geschaeftsart
                Einzelhandel Dienstleister

                kat
                Abschleppstangen Autoauspuffanlagen Autostoßdämpfer

                2.
                geschaeftsart
                Einzelhandel Produzent Dienstleister

                kat
                Abschleppstangen



                Danke für deine Hilfe!!

                Ohh sehe grad nun hab ich n Fehler mit drin, sorry da ist ja was doppelt
                Zuletzt geändert von webguru; 18.07.2005, 13:35.

                Kommentar


                • #9
                  Wenn in branche Auto & Verkehr steht, dann stimmt dein Ergebnis, denn Einzelhandel Dienstleister ist weder Einzelhandel noch Produzent noch Dienstleister...

                  Wenn du niemandem (auch nicht der DB) sagst, dass die Werte nicht exakt so drin stehen, wie du sie im SELECT suchst, dann kann dir niemand auch nicht helfen

                  Schau dir LIKE nochmal an, damit geht's

                  Ach ja:
                  Wenn du dir nicht sicher bist, ob deine DB mit einem Volltextindex umgehen kann, warumschaust du dann nicht nach?
                  Ich denke, also bin ich. - Einige sind trotzdem...

                  Kommentar


                  • #10
                    Sorry, mit den exakten Werten, dachte das ist klar, dass mehr drin stehen kann...
                    Bei LIKE hab ich zwar wieder das Problem, das mehr gefunden wird als tatsächlich zutrifft, aber hab ich mir schon fast gedacht.
                    (Wobei ich es probiert habe natürlich auch mit LIKE, aber trotzdem nicht zum gewünschten Ergebnis kam...war n Zufall das ich grade mit = kam...)

                    Zu LIKE hab ich aber nur schlechtes gelesen, wegen Performance bei größerer Datenbank...bzw. mehrere Tausend Einträge etc. Naja ist ja auch erstmal Wurscht...


                    Zu der Volltextsuche:
                    Habs gefunden, hatte vorher an falscher Stelle gesucht,
                    nochmal Danke für den Hinweis!

                    (Zumindestens kann ich es klicken in PhpMyAdmin, kann man das nicht später noch sehen welche Felder man Volltextindex gegeben hat??
                    Is ja ne komische Sache...Wenn die DB es nicht könnte würde doch mit Sicherheit eine Fehlermeldung bekommen?)

                    Wäre es ratsam es lieber so zu machen??(Volltextsuche)
                    Hab keinen Schimmer wie das geht, aber wird schon irgendwo stehen....

                    Danke für deine Geduld
                    Zuletzt geändert von webguru; 18.07.2005, 23:20.

                    Kommentar


                    • #11
                      In phpmyadmin siehst du unter der Tabelle welche Indizes wodrauf liegen
                      Ich denke, also bin ich. - Einige sind trotzdem...

                      Kommentar


                      • #12
                        Danke!

                        Noch eins:
                        Ist es denn überhaupt sinnvoll, in meinem fall das mit Volltext zu machen oder würdest du die Geschichte mit LIKE bevorzugen?


                        nochmals!

                        Kommentar


                        • #13
                          Probier es aus, messe die Zeit, nimm das was schneller ist, aber miss nicht nur einmal sondern mehrmals und durchsuche eine vernünftige Anzahl von Datensätzen, die evtl. noch anzulegen sind
                          Ich denke, also bin ich. - Einige sind trotzdem...

                          Kommentar


                          • #14
                            Danke recht herzlich, mrhappiness !

                            Kommentar

                            Lädt...
                            X