webForumDet fria alternativet

sokfunktion hittar inget??

12 svar · 529 visningar · startad av Gimbo

GimboMedlem sedan dec. 20001 626 inlägg
#1

hejsan, har ngn nagon som helst aning om varfor detta inte funkar?? kan det vara for att jag e koplad mot en MS SQL 7.0 databas??

Set Conn = Server.CreateObject("ADODB.Connection")
call passwordConn()

search = Request.Form("search")

Dim RSOrder
strSql = "select o.orderid, convert(varchar(11),orderdate) as orderdate, o.ostatus, trackingnumber, WBMemo, cc_respmsg, cc_authcode, memo, c_firstname, c_lastname, cc_TimesProcessed, cc_avszip, cc_avsaddr, cc_cvv2," &_
							" isnull(convert(varchar(15),shippeddate), 'not shipped') as shippeddate, count(od.orderid) as ordercount " &_
							" from customers c, orders o, orderdetails od " &_  
							" where o.orderID LIKE '%"&search&"' " &_
							" group by o.ostatus, o.orderid, orderdate, c_firstname, c_lastname, shippeddate, trackingnumber, WBMemo, o.ostatus, cc_respmsg, cc_authcode, memo, cc_TimesProcessed, cc_avszip, cc_avsaddr, cc_cvv2" &_
							" order by o.orderid desc, o.ostatus asc"
						
set RSOrder = conn.execute(strSql)

vill att den skall kolla igenom kolumnen orderID som finns i tabellen orders, anledningen till att jag har relation e for att jag vill med samma sok falt kolla igenom en annan tabell i databasen oxa mha OR LIKE...

men just nu far jag inte den ens att kolla igenom en kolumn... den skriver ut nothing found.. dvs rsOrder e eof

@ndersMedlem sedan juni 200032 969 inlägg
#2
  1. Varför gör du en like-sökning på order-id? är det inte ett talfält?
  2. Är det meningen att du bara ska ha ett wildcard i sökningen, så du säger att du vill ha alla poster vars orderid slutar på söktexten?
  3. Var har du joinvillkoren?
  4. http://www.webforum.nu/forumdisplay.php?s=&forumid=53

mvh

GimboMedlem sedan dec. 20001 626 inlägg
#3

1, jo orderID ar ett talfalt, kan man inte kora like pa talfalt??
2, meningen med hela sokfunktionen ar att jag ska i ett o samma falt kunna soka efter orderID, lastName, firstName, phoneNbr osv.
3, join villkor?? vad e den till for??

@ndersMedlem sedan juni 200032 969 inlägg
#4
  1. Varför vill du göra en LIKE-sökning på ett order-ID?
  2. Läs min fråga igen, jag förstår vad du vill ha din sökfunktion till.
  3. Du hämtar från mer än en tabell, men du specificerar inte någonstans hur tabellerna hänger ihop.

mvh

GimboMedlem sedan dec. 20001 626 inlägg
#5

1, for att kunna soka poster efter orderID
2, vad e wildcard?? o jupp, vill ha det sa att soktexten visar alla poster med orderID, om det nu va det din fraga va... fan hanger inte riktigt med har
3, hur fixar jag join grejsen?? om lat oss saga att i de 2 tabellerna finns en kolumn som e likadan customerID, skriver jag inner join tabell.customerID = tabell2.customerID??

@ndersMedlem sedan juni 200032 969 inlägg
#6

Så man ska kunna fylla i "14" och ordrarna med id 14, 114, 214 och 4314 returneras? Jag ser inte meningen riktigt med en sådan sökning. Vad händer om man söker på "foo"?

Ett wildcardtecken är %. Du har skrivit ditt likevillkor på så sätt att du bara har wildcardtecken före sökordet, och inget efter. Ska det vara så? Ska du bara söka på det som slutar med angivet sökord?

En join kan se ut så här:

SELECT tabell1.fält1, tabell2.fält1 FROM tabell1 INNER JOIN tabell2 ON tabell1.ID = tabell2.t1ID

Eller, ett annat alternativ för samma fråga:

SELECT tabell1.fält1, tabell2.fält1 FROM tabell1, tabell2 WHERE tabell1.ID = tabell2.t1ID

Men som sagt, du måste specificera var koppling ska göras. Jämför med detta scenario: Du ber någon att ge dig en glass med topping på. Lite senare kommer denna person tillbaka med över 700 glassar, alla olika glassar med alla olika toppings, eftersom han inte visste vad du ville ha. Nu gäller det att käka glassen fort utav helskotta, eftersom det är sommar. ;-)

mvh

GimboMedlem sedan dec. 20001 626 inlägg
#7

hahaha snyggt exempel... nej men sa vill jag INTE ha det. missuppfattade dig dar, jag vill att da de soker pa 14 sa skall endast 14 returneras.

men hur kommer join funka i min kod?? och hur fungerar det med placeringen av wildcard??

@ndersMedlem sedan juni 200032 969 inlägg
#8

Ska du ha en exakt jämförelse ska du inte använda LIKE, utan =. Inga wildcardtecken då heller. Dessutom är orderID ett numeriskt fält, då ska du inte ha några apostrofer runt värdet. En join kan se ut något sånt härnt:

strSql = "select o.orderid, convert(varchar(11),orderdate) as orderdate, o.ostatus, trackingnumber, WBMemo, cc_respmsg, cc_authcode, memo, c_firstname, c_lastname, cc_TimesProcessed, cc_avszip, cc_avsaddr, cc_cvv2," &_
							" isnull(convert(varchar(15),shippeddate), 'not shipped') as shippeddate, count(od.orderid) as ordercount " &_
							" [b]from customers c" & _
							" INNER JOIN orders o ON c.fält = o.fält" & _
							" INNER JOIN orderdetails od ON o.fält = od.fält" &_  
							" where o.orderID = "&search[/b] &_
							" group by o.ostatus, o.orderid, orderdate, c_firstname, c_lastname, shippeddate, trackingnumber, WBMemo, o.ostatus, cc_respmsg, cc_authcode, memo, cc_TimesProcessed, cc_avszip, cc_avsaddr, cc_cvv2" &_
							" order by o.orderid desc, o.ostatus asc"

Jag förstår inte riktigt heller din group by.

mvh

OveRRidEMedlem sedan feb. 200112 078 inlägg
#9

Flyttas från ASP, VBScript.

GimboMedlem sedan dec. 20001 626 inlägg
#10

hmm ok, dar har du en poang... men da kan man val nastan banta ner den dar sql fragan, what if I do this:

SQL = "SELECT Customers.*, Orders.* FROM Customers INNER JOIN Orders ON Customers.customerID = Orders.customerID WHERE Orders.OrderID = " &search

tar jag med allt i de bada tabellerna da?? hur gor jag for att man skall kunna soka pa email o sant oxo?? satter jag in en OR efter Orders.OrderID = " &search ??

@ndersMedlem sedan juni 200032 969 inlägg
#11

Gimbo skrev:

tar jag med allt i de bada tabellerna da?? hur gor jag for att man skall kunna soka pa email o sant oxo?? satter jag in en OR efter Orders.OrderID = " &search ??

Jo, men... Vad hade du tänkt skulle hända om man söker på fjoo eller någon annan sträng? Orderid är ett tal, då kommer du få typproblem. Du får i så fall konvertera i SQL-frågan.

GimboMedlem sedan dec. 20001 626 inlägg
#12

anders plz, lite kod... alltsa det jag mena e med den koden jag skrev inkluderar jag samtliga kolumner?? i tabellen for att sedan kolla igenom en o en med OR

@ndersMedlem sedan juni 200032 969 inlägg
#13

alltsa det jag mena e med den koden jag skrev inkluderar jag samtliga kolumner??

Ja.

... OR fält LIKE '%" & search & "%' OR fält2 LIKE '%" & search & "%'

Eller förstår jag inte vad du frågar?

141 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)