MySql LIKE, wat doe ik fout?

Status
Niet open voor verdere reacties.

robuisman

Nieuwe gebruiker
Lid geworden
16 nov 2011
Berichten
2
Hallo,
Ik probeer het standaard script van Google storelocator aan te passen zodat ik de resultaten kan beperken met een MySQL query.

Ik heb een tabel "markers" die er zo uit ziet:

Company, address, name, type, leveranciers, lat, lng

In het veld "leveranciers" staan meerdere leveranciers genoemd per bedrijf. bijvoorbeeld:

bedrijf1: lev1; lev2; lev3
bedrijf2: lev2; lev3
bedrijf3: lev1; lev2; lev4
bedrijf4: lev1

Nu als ik een Mysql Query maak:

("SELECT address, name, type, leveranciers, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers WHERE leveranciers = ‘lev1' HAVING distance < '%s' ORDER BY distance LIMIT 0 , 4",

Dan krijg ik enkel enkel "bedrijf4 als resultaat terug. Tot dusver dus goed. Nu wil ik dat ook bedrijf 1 en 3 naar voren komen. Dus heb ik de query aangepast naar:

("SELECT address, name, type, leveranciers, lat, lng, ( 3959 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers WHERE leveranciers LIKE '%lev1%' HAVING distance < '%s' ORDER BY distance LIMIT 0 , 4",

Dit zou volgens mij moeten werken. Echter krijg ik nu geheel geen resultaten.

Iemand enig idee wat dit kan zijn? Ik heb het idee dat dit gewoon resultaten zou moeten geven.
 
Laatst bewerkt:
Wordt koffiedik kijken als we niet precies weten hoe je tabel er echt uitziet en wat (in de werkelijkheid) is ingevuld in je query voor lev1.

Lijkt mij dat lev1 speciale karakters bevat die een speciale functie hebben in LIKE, zoals een [ of een ]

Tijs.
 
Ik zie je op een aantal plekken %s gebruiken voor values, zou het kunnen dat ie %l ook oppikt voor een value?

Kun je de query zelf die daadwerkelijk uitgevoerd wordt (met de waarden ingevuld) echo'en? Dan kun je zien of hij goed opgebouwt wordt.
 
@dnties: Dit zijn de daadwerkelijke (testwaarden in de tabel. De enige vreemde tekens die voorkomen zijn ; (punt-komma's) Daarnaast heb ik ook nog een paar opgenomen die ankel hoofdletters, kleine letters en spaties bevatten: "lev1 lev2 lev3 lev4"

@Frats: Dat gedeelte van de query, komt van google en werkt verder ook goed. Ik heb daar verder niet aan gezeten. Enige wat veranderd is de WHERE clausule.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan