Jquery Mysql Suche ungenau

Dieses Thema im Forum "Softwareforum" wurde erstellt von Salupi, 4. September 2019.

  1. Salupi

    Salupi
    Registriert seit:
    3. September 2019
    Beiträge:
    2
    Ort:
    GD
    Servus.
    Ich suche nun schon länger verzweifelt nach einer Lösung,
    komme aber leider auf keinen nenner.
    Habe mir eine Suchfunktion gebastelt die Live Daten aus der Mysql DB Ausspuckt.
    Soweit funktioniert die suche auch, aber die Ergebnisse kommen zu Ungefiltert raus.
    Suche ich nach 5 wird alles was eine 5 beinhaltet ausgespuckt, liegt am LIKE, das ist mir bewusst.
    Jetzt ist nur das problem wenn ich das LIKE mit = ersetze findet er nichts mehr.
    Ich bin jetzt nicht so bewandert auf dem ganzen Thema, versuche aber dennoch das ganze zu verstehen.
    Mehrere Stunden googlen haben mich nun aber nicht weiter gebracht. Vielleicht fehlt einfach ein Logischer Denkansatz und mir kann jemand einen Tipp bzw. Rate geben. Ich wäre jedenfalls sehr Dankbar.
    Da ich keine Links einfügen kann versuche ich es mal mit einem Code Schnipsel.
    Die Abfrage aktuell:

    PHP:
      SELECT FROM Master_Karten
      WHERE Karten_Name LIKE 
    '%".$search."%'
      
    OR Set_Name LIKE '%".$search."%'
      
    OR Holz_Level LIKE '%".$search."%'
      
    OR Gold_Level LIKE '%".$search."%'
      
    OR Magie_Level LIKE '%".$search."%'
    Die Level felder haben unterschiedliche mengen an Zahlen. Alle getrennt jeweils mit LEERZEICHEN KOMMA.
    Nun hätte ich gerne die Suche so, das wenn ich nach z.B. 5 suche auch nur 5 ausgespuckt wird. Oder bei 15 nur 15 und nicht auch 115 usw.

    Ich häng gerade echt total, und verstehe nicht warum es mit dem = keine werte mehr findet. Meinem gefühl nach muss es an dem %".$search."% liegen, aber das kann ich ja nicht einfach löschen, da das ja quasi den eingegebenen text abfragt. Ist mein Denkansatz einfach nur falsch?
     
  2. Marvin manisch-depressiv

    Marvin
    Registriert seit:
    21. Mai 2003
    Beiträge:
    50.011
    Mein RIG:
    CPU:
    AMD Ryzen 7 2700X
    Grafikkarte:
    Palit GeForce GTX 1080 GameRock Premium 8GB
    Motherboard:
    ASUS PRIME X370-PRO
    RAM:
    2x Corsair CMK16GX4M2B3000C15 (16 GB)
    Laufwerke:
    WD_BLACK SN750 NVMe 1TB
    Crucial MX500 CT500MX500SSD1
    HL-DT-ST BDDVDRW CH12NS40
    Soundkarte:
    Asus Essence STX II
    Gehäuse:
    Fractal Design Define R5 PCGH-Edition
    Maus und Tastatur:
    Logitech G502 HERO
    Betriebssystem:
    Microsoft Windows 10 Education (x64)
    Monitor:
    Acer Predator XB271HK UM.HX1EE.001
    Also ein Holz-Level bspw. könnte aussehen wie
    Code:
    5, 15, 20, 21
    Gibt es Dopplungen?

    Kurze Antwort: https://stackoverflow.com/questions/17750801/check-if-mysql-field-contains-a-certain-number-in-mysql-query
    Dort sind genügend komplexe und weniger komplexe Beispiele aufgeführt. Bei Bedarfnochmal fragen. Ohne mir die Performance angeguckt zu haben: Die Spalte mit ", " zu konkatenieren und dann nach
    Code:
    LIKE '%, PARAM, %'
    , wo PARAM dein Suchparameter ist, zu suchen, wäre die simpelste Lösung.

    Lange Antwort: Deine DB ist scheiße, kein Mensch der bei Trost ist speichert solche Listen von Nummern.
     
    Zuletzt bearbeitet: 4. September 2019
  3. Salupi

    Salupi
    Registriert seit:
    3. September 2019
    Beiträge:
    2
    Ort:
    GD
    Danke schon mal für deine Antwort. Ja die DB ist scheiße. Überlege auch schon wie ich das ganze besser umsetzen kann, bin aber noch auf keinen gescheiten nenner gekommen. Dopplungen kann es geben, also es kann sein das eine Karte auf z.B. Level 5 sowohl in Holz, Gold und Magie zu finden ist. Allerdings gibt es keine Doppelungen im jeweiligen Table. Die sind also insofern schon mal getrennt. Ich werde mir mal deinen Link genauer anschauen und falls noch bedarf ist hier noch mal melden. Danke jedenfalls für die schnelle hilfe
     
Top