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
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??
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??
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. ;-)
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"
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 ??
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.
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