Problem mit einfacher Abfrage

visiondpc

Erfahrenes Mitglied
Hallo. Ich sitz hier grade an einem PHP-Script das eine MYSQL-Datenbank nach bestimmten Wörtern durchsucht.
Ich habe mir hier schon mehrere Beiträge mit ähnlicher Abfrage durchgelesen aber ich finde keinen Fehler.
Warum wird mir bei dieser Abfrage nichts zurückgegeben Obwohl das Wort mehrfach vorkommt?

Code:
SELECT d.id, d.name, k.katname 
FROM ds_doc d, ds_kat k 
WHERE d.kat=k.id AND d.name='%UNWISE%' OR d.search='%UNWISE%' OR k.katname='%UNWISE%' 
ORDER BY d.name
 
Du musst LIKE statt dem = benutzen:

SQL:
SELECT d.id, d.name, k.katname 
FROM ds_doc d, ds_kat k 
WHERE d.kat=k.id 
  AND d.name LIKE '%UNWISE%' 
  OR d.search LIKE '%UNWISE%' 
  OR k.katname LIKE '%UNWISE%' 
ORDER BY d.name

Weiterhin solltest du einen JOIN benutzen um deine Abfrage effizienter zu machen:
SQL:
SELECT d.id, d.name, k.katname 
FROM ds_doc d INNER JOIN ds_kat k ON d.kat=k.id
WHERE d.name LIKE '%UNWISE%' 
  OR d.search LIKE '%UNWISE%' 
  OR k.katname LIKE '%UNWISE%' 
ORDER BY d.name
 
Danke für die schnelle Antwort. Jetzt wird zwar alles mehrfach angezeigt ( jedes Objekt wird einmal unter jeder kategorie aufgelistet ) aber das krieg ich schon hin.
 
Danke aber der Fehler lag ganz woanders. Ich hab die Klammern vergessen die bei mehreren Suchbergriffen nötig gewesen wären.
 
Zurück