Du har ikke gjort noget som helst forkert. Men du skal kigge på din SQL-sætning:
$sql = "SELECT * FROM companies WHERE company_index_lvl > 0 AND name OR trade LIKE '%$search%' ORDER BY name";
For det første skal name og trade laves parvis, så du skal ændre det sidste til:
$sql = "SELECT * FROM companies WHERE company_index_lvl > 0 AND name LIKE '%$search%' OR trade LIKE '%$search%' ORDER BY name";
Hvorfor finder den så begravelsesforretninger? Fordi din '%$search%' siger det - din søgestreng skal således bare optræde et vilkårligt sted i name eller trade. Du kan evt. overveje, om det kun skal optræde i begyndelsen ('$search'), eller om du skal kræve længere søgestrenge, da 'el' er en meget almindelig kombination af bogstaver i det danske sprog. Desværre hjælper det ikke på dit tilfælde med el.
Du skal sige: "WHERE company_index_lvl > 0 AND name LIKE .... OR company_index_lvl > 0 AND trade LIKE ...."
Det er et spoergsmaal om prioriteter hvor AND har hoejere prioritet end OR.
Med hensyn til din searchterm saa kommer det an paa hvad du vil. Ved at saette wildcard % foran og efter $select saa beder du om hvad du faar - begrav el sesforretning indeholder el med nul eller mere bogstaver foran og nul eller mere bogstaver bagved. Hvis du kun vil have ord der begynder med din seachterm saa drop % foran $search.
Hej
Du har wild cards på begge sider af din søgestreng. Derfor vil alle records hvor el indgår komme med, så det er vel egentlig ikke en fejl? Hvis den kun skal ramme det præcise ord så skal '%' vel bare væk - eller har jeg misforstået noget?
mrgumble naaede at lave et svar mens jeg skrev mit. Vi siger det samme om searhtermen, men vi er uenige om SQL termen. Jeg lavede en lille test, og paa mit system vil mgumble's sql expression give ENTEN companies med index>0 og navn lig searchtermen ELLER companies med trade lig searchtermen uanset index. Hvis det ikke er det du vil er skemaet:
(index>0 AND searchterm) OR (index>0 AND searchterm). Paranteserne kan du droppe, de er kun tilfoejede for illustration.
Mange tak for jeres super gode svar - og hurtige. I mellemtiden sad jeg og kiggede og tænkte og kom også frem til at name og trade skulle laves parvis.
Hvis jeg fjerner % i søgestrengen, vil den ikke vise noget. Så det har jeg beholdt, og forklaringen er jo egentlig ret logisk, Det ikke gode søgeord at bruge ordet "el" eller "it".
Ellers virker det upåklageligt nu, og jeg vil gerne dele pointene mellem de svar jeg har brugt.