10. august 2004 - 15:26Der er
19 kommentarer og 1 løsning
Problemer med en SQL streng der opføre sig meget underligt
Jeg har denne SQL streng til et søge script, men underligt så når jeg køre den for resultaterne ud 6 gange?. når jeg køre SQL strengen i MYSQLfront skriver den dem godt nok kun ud en gang, men den sortere ikke ordenlig efter language id..
SQL strengen ser sådan ud, håber det forklare mit problem forståeligt nok, har bixet med det næsten hele natten.
upz glemte vist strengen ;) SELECT Name, Content, LanguageID, ID FROM tbl_article WHERE LanguageID = 1 AND Content LIKE '%german%' OR Name LIKE '%german%' OR Content LIKE '%german%' AND Name LIKE '%german%'
det er når jeg køre strengen via ASP, jeg for 6 resultater.
Synes godt om
Slettet bruger
10. august 2004 - 15:30#3
Jeg tror du skal kigge på dine OR og AND, du udsøger på det samme et par gane, jeg kan ikke helt gennemskue hvad det helt nøjagtig er du vil, du kunne evt. prøve at sætte paranteser om det der hænger sammen.
det med sortering bør du kunne klare med at tilføje ORDER BY LanguageID til sidst i din sql sætning. Hvorfor den udskriver resten flere gange kan jeg ikke lige se. Kan det tænkes at det har noget med din asp kode at gøre?
jeg kan da lige poste koden her, men synedes jeg har dobbelt tjekket mange gange... Det jeg mente med sortere var ikke sortere efter id, men som du kan se på SQL strengen så vil jeg havde at det er kun artikler med LanguageID = 1 der skal skrives, men de kommer alle sammen med..
her er den fulde kode
<% Function Search(strg, langid) Strg = Replace(strg, "'", "''") ' SQL = "SELECT Name, Content, ID FROM tbl_article WHERE Name LIKE '%" & strg & "%' AND Content LIKE '%" & strg & "%' OR Content LIKE '%" & strg & "%' AND LanguageID = " & Langid SQL2 = "SELECT COUNT(id) as nr FROM tbl_article WHERE Name LIKE '%" & strg & "%' AND Content LIKE '%" & strg & "%' OR Content LIKE '%" & strg & "%' AND LanguageID = " & Langid SQL = "SELECT Name, Content, LanguageID, ID FROM tbl_article WHERE LanguageID = 6 AND Content LIKE '%" & strg & "%' OR Name LIKE '%" & strg & "%' OR Content LIKE '%" & strg & "%' AND Name LIKE '%" & strg & "%'" Response.write SQL Set RsSearch = objConn.Execute(SQL) Set RsSearch2 = objConn.Execute(SQL2) Rcount = RsSearch2("nr") RsSearch2.close SQL = "SELECT SearchNonResults, SearchResults, SearchCount FROM tbl_Language WHERE ID=" & Cstr(langid) RsSearchlang = objConn.execute(SQL)
how der er 2 SQL strenge, hvor den ene er kommenteret ud, det er en af min detsvære mislykkedes forsøg.
Synes godt om
Slettet bruger
10. august 2004 - 15:35#7
Prøv dette så: SELECT Name, Content, LanguageID, ID FROM tbl_article WHERE LanguageID = 1 AND (Content LIKE '%german%' OR Name LIKE '%german%' OR Content LIKE '%german%' AND Name LIKE '%german%')
Ja det gør den også men for at få alle med languageid 1 ud så er du nødt til at bruge paranteser for at få den bygget rigtigt op. men du kan udelade noget af det du har og så gøre sådan: SELECT Name, Content, LanguageID, ID FROM tbl_article WHERE LanguageID = 1 AND (Content LIKE '%german%' OR Name LIKE '%german%')
Den tager alle med id 1 OG (content eller name like german)
bertie: det hjalp, men stadig et problem med at der kommer vildt mange svar, men det er underligt nok kun ved et sprog, og som du kan se er koden ens for alle sprog, det er bare langid der blir ændret.
er lige væk et stykke tid, skal ha brygget en ny kande kaf' ;)
Synes godt om
Slettet bruger
10. august 2004 - 16:01#14
Hvis der står german i både navn og content vil den komme med da den jo er en OR men den skal samtidig have en id 1, med hensyn til at der kommer mange med så er du nok nødt til selv at checke dine data, jeg ved ikke hvor mange der skal være og hvor mange du får ud :-)
Synes godt om
Slettet bruger
10. august 2004 - 16:02#15
Ellers få koden rettet til og post den med en beskrivelse af hvor det nu er galt.
mine dataer er som for oven, jeg for samtlig data ca 6 gange.. ja ok, det andet har u da igrunden ret i.. sjovt som hvodet ikke fungere når man ikke sovet.. ;)
men fatter stadig ikke hvorfor den smider data'en ud så mange gange..
Synes godt om
Slettet bruger
10. august 2004 - 16:07#17
Jamen du må da have rettet i koden som jeg skrev 10/08-2004 15:39:55 for at få luget ud i dem der kommer med for mange gange?
Jeg fant fejlen, det var fordi jeg inde i loopen af en eller anden grund havde skrevet funktions variablen Search et hav af gange, ja det du skrev virkede perfekt på det andet problem, men det var simpelt min træthed der gjorde at jeg fik så mange resultater.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.