webForumDet fria alternativet

Hämta från databas !!!

ASP

28 svar · 1 200 visningar · startad av ragnared

Medlem sedan apr. 2003152 inlägg
Frågan#1

Jag undrar hur man ska göra för att kunna hämta en tabell, kolla här under. Jag vill att där det står 00003 med fet text där tabellen heter "kolla" det funkar när jag skriver i texten direkt men hur ska jag göra för att den skall själv känna av att hämta.

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("databas/main.mdb"))
strSQL = "SELECT * FROM products where code_no = '[B]00003[/B]' ORDER BY id "
Set rs = objConn.Execute(strSQL)
i = 0
%>
Medlem sedan feb. 20034 441 inlägg
#2

Jag förstår inte din fråga överhuvudtaget, men om du vill skriva ut innehållet av din sqlfråga, kan du lägga till följande under din kod ovan:

if not rs.eof then
     response.write(rs("ditt_kolumnnamn"))
else
     response.write("inga träffar...")
end if
set rs = nothing
objConn.close : set objConn = Nothing

Förklara gärna lite tydligare vad ditt problem är och vad du vill göra, så är det enklare att ge dig nå tips.

Medlem sedan apr. 2003152 inlägg
#3

Där det står 00003 heter fältet i databasen kolla.Hur får jag det i kod form att skrivas ut i stället för att jag skriver manuellt in ordet.

Medlem sedan juni 20019 519 inlägg
#4
dim code
code = request.QueryString("code")
code = replace(code,"'","''")
strSQL = "SELECT * FROM products where code_no = '" & code & "' ORDER BY id "

så använder du http://dinsida.com/adressen.asp?code=0003 ? Eller hur menar du?

red. Glömde ett " ;)

Medlem sedan feb. 20034 441 inlägg
#5

ragnared skrev:

Hur får jag det i kod form att skrivas ut i stället för att jag skriver manuellt in ordet.

Ja, jag är ledsen, men förstår inte vad det är du vill göra.
Vill du hämta "alla" kolumner i databasen där kolumnen code_no = "00003" så ska du använda voigtann1's exempel ovan.

ragnared skrev:

Där det står 00003 heter fältet i databasen kolla.

..?

Medlem sedan apr. 2003152 inlägg
#6

Ja det stämmer

Medlem sedan apr. 2003152 inlägg
#7

Får ett felmeddelande

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("databas/main.mdb"))
dim code
code = request.QueryString("code")
code = replace(code,"',"''")
strSQL = "SELECT * FROM products where code_no = '" & code & "' ORDER BY id "
Set rs = objConn.Execute(strSQL)
i = 0
%>
Medlem sedan apr. 2003152 inlägg
#8

förlåt glömde felmeddelandet!!!

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/piraten/right_menu1.asp, line 24, column 27
code = replace(code,"'hej,"''")
--------------------------^

Medlem sedan apr. 2003152 inlägg
#9

Det jag vill är att code_no är ett eget nummer men jag vill att den skall kunna kopplas till kolla. Alltså att code_no automatiskt hämta kolumnen kolla

Medlem sedan apr. 2003152 inlägg
#10

Hur gör man!!!

Jag vill att det skall hämta värde från kolumnen kolla i databasen hur gör jag det???? Detta är samma som in fast ett lättare uttryck från mig...

strSQL = "SELECT * FROM products ORDER BY id

Medlem sedan juli 20003 825 inlägg
#11

Jo... men du rör till det i skallen på dig själv! :-)

Lagen om de heliga fjumparna sägar: "Inga enkelfjumpar vid tal eller sant/falskt".

Det betyder, eftersom du har enkelfjumpar, att "code_no" är ett textfält. Jag hoppas folk slutar hjälpa dig innan du gör rätt från början. Det är ett otyg med folk som blandar... (Folk får för sig att det ska vara så och det är helt fel.)

Visst, man ska vara kreativ... Men inte i valet av namn av kolumner och tabeller!!

***
Gör om!!

Skriv: intCodeNummber och sätt den till ett tal, inte text.

Medlem sedan juli 20003 825 inlägg
#12

Du skriver:
strSQL = "SELECT * FROM products ORDER BY id

***
Sen kan jag ge dig ett rent generellt tips, som inte är lika allvarligt som att namnge saker felaktigt (kreativt).

Använd inte stjärnan för att hämta saker. Bättre i så fall att skriva vad det är du hämtar:

strSQL = "SELECT intID, dteCreated, strName, strText, bolView FROM products ORDER BY id

Gör rätt från början. Det lönar sig i längden...! :-)

Om du tar dig tid att skriva namnen tydligt (inte håller på med förkortningar) så behöver du inte dokumentera ditt arbete och det är lättare för andra och för dig själv att läsa din kod senare.

***
Fler exempel:

strSQL = "SELECT p.intID, p.strName FROM products p WHERE p.bolView = TRUE"

strSQL = "SELECT p.intID, p.strName
, u.intID, u.strName, u.strEmail
FROM products p, users u WHERE p.bolView = TRUE AND u.intID = p.intUserID"

[products]
intID
strName
intUserID

[users]
intID
strName
strEmail

Are you with??

Medlem sedan feb. 20034 441 inlägg
#13
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/piraten/right_menu1.asp, line 24, column 27
code = replace(code,"'hej,"''")
--------------------------^

I ditt felmeddelande framgår det rätt tydligt vad som är fel. Det är ju så att innehåller tex. en stäng ett " i början måste det även vara ett i slutet av stängen, dvs "Det här är en sträng". Likadant att du måste ha med slutparantes om du har med en startparantes, dvs:

RÄTT = (ditt_värde)
RÄTT = "sträng"
FEL = "sträng
FEL = (ditt_värde

Ditt felmeddelande beror alltså på du inleder med "'hej... men avslutar endast med ", du måste alltså ha med ' i slutet, efter hej.

Och... döp inte en kolumn till "kolla" (som jag fattat det hela är det just det du gjort), utan dra nytta av det Eclipse skriver.

Använd inte "*", utan ange istället vad du ska hämta, som ovanstående påpekar.
Så i ditt fall ska du alltså använda:

<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("databas/main.mdb"))
dim code
code = request.QueryString("code")
code = replace(code,"',"''")
strSQL = "SELECT kolla FROM products WHERE code_no = " & code & " ORDER BY id"
Set rs = objConn.Execute(strSQL)
if rs.eof then
   ' träffar finns
else
   ' hittar inget...
end if
i = 0
%>

Men ovanstånende kan du alltså hämta ut "kolla" där "code_no" är lika med "DITT_VÄRDE_I_CODE".

Jag förstår fortfarande inte riktigt vad det är du vill åstadkomma, men jag "antar" att det är något liknande du vill göra...?

Medlem sedan apr. 2003152 inlägg
#14

Jag får detta felmeddelande ????

Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03EE)
')' förväntas.
/piraten/right_menu1.asp, line 37, column 24
code = replace(code,"',"''")
-----------------------^

Medlem sedan feb. 20034 441 inlägg
#15

ragnared skrev:

Jag får detta felmeddelande ?

Du går nästan lite för bråttom fram, snälla, läs det jag skrivit ovan och prova lite innan du frågar.
Du kommer garanterat tjäna på det framöver om du provar lite själv mellanåt och läs gärna föregående inlägg en eller flera gånger om, för som jag påpekar tidigare så finns svaret på din fråga i mitt förra inlägg:

[blue]RÄTT = (ditt_värde)
RÄTT = "sträng"[/blue]
[red]FEL = "sträng
FEL = (ditt_värde[/red]
Medlem sedan juli 20003 825 inlägg
#16

Tips från coachen: Skriv inte som du läser!!

Skriv inte som du läser. Ska det vara enkel- eller dubbelfjumpar så ska det vara två stycken. Skriv båda på en gång så missar du aldrig "den andra fjumpen", så att säga.

Gäller oavsett programmeringsspråk.

Medlem sedan juni 20019 519 inlägg
#17

redigerat mitt inlägg då felet ligger i min kod ;)

Medlem sedan feb. 20034 441 inlägg
#18

voigtann1 skrev:

redigerat mitt inlägg då felet ligger i min kod ;)

Hehe, det har du ju rätt i, men jag påpekade det ändå två gånger :)

Medlem sedan juni 20019 519 inlägg
#19

MickeA.com skrev:

Hehe, det har du ju rätt i, men jag påpekade det ändå två gånger :)

har inte läst tråden sedan igår :P

Medlem sedan apr. 2003152 inlägg
#20

Nu ska vi se om jag äntligen kan klara ut mitt problem så att det blit lättare för er att förstå. Jag har som sagt inte varit tydlig och det beror nog på att jag inte själv har vetat hur jag ska göra. Jag vill att när man klickar från en sida till den andra typ så här http://dinsida.com/adressen.asp?code_no=0003 så vill jag att på den andra sidan som ser ut som här under att den kommer in som code_no men där jag har fet makerat där det står code vill jag att den skall hämta ifrån samma code_no men att den hämtar det som står i columnen kolla tex 56128. då vill jag att den ska hämta det och placera det där istället. Detta för att dom skall vara kopplade på samma sida.


<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& server.MapPath("databas/main.mdb"))
dim code
code = request.QueryString("code_no")
code = replace(code"'","''")
strSQL = "SELECT * FROM products where code_no = [B]'" & code & "' [/B] ORDER BY id "
Set rs = objConn.Execute(strSQL)
i = 0
%>
264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)