Avatar billede bjoern_bertelsen Nybegynder
24. september 2005 - 23:45 Der er 12 kommentarer og
1 løsning

tjek om databasefelt er tomt!

hejsa, jeg har en lille if-sætning der skal tjekke om et felt i databasen er tomt. Såfremt feltet "billede" er tomt skal jeg vise et billede som hedder intetbillede.jpg. Men hvis feltet billede ikke er tomt, så skal jeg vise indholdet feltet som link til billedet.

Jeg har prøvet sådan her:

strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If not rs("billede") = 0 THEN
response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"
else
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
end if

der skal selvfølgelig ikke stå "if not rs("billede") = 0, for så tjekker den om der står tallet "0" i feltet. Den skal tjekke om feltet er tomt, (eller kun indeholder mellemrum)!

Nogen der kan hjælpe?
Avatar billede kalp Novice
24. september 2005 - 23:48 #1
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"

?
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:22 #2
hmmm meget mystisk. Ja det virker fint kalp, bortset fra at min if-sætning gør vrøvl.

Hvis feltet indeholder en helt almindelig url til et billede, så går der et eller andet galt! Jeg kommer ikke ned til efter else i if-sætningen.

Når jeg viser dokumentet i browseren så udskriver den rigtig nok et billedet intetbillede.jpg såfremt jeg har slettet alt i feltet billede. Når jeg opdaterer feltet og giver den en url, så har den da fattet at den ikke skal vise billedet intetbillede.jpg, men den viser ikke noget andet. Når jeg ser i kildekoden for siden har den html'en <img border=1 src= width=200>

prøver jeg inden if-sætningen og udskrive response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"
så kommer billedet som url'en henviser til fint frem. Det kan kan den bare ikke finde ud af når den står i if-sætningen.

Alternativt har jeg prøvet at skrive if not, og så bytte om på mine to response.write sætninger, med det resultat at selvom der er en url i feltet, så viser den stadig intetbillede.jpg???
Avatar billede kalp Novice
25. september 2005 - 00:27 #3
strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"
end if

Du kan for sjov skyld afprøve denne

strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
end if
If rs("billede") <> "" AND rs("billede") <> " " THEN
response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"
end if
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:27 #4
det skal lige siges, at hvis jeg skriver

If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "hej hej hej"

så skriver den fint hej hej hej ud, hvis ikke feltet er tomt, men den kan ikke finde ud af at skrive billedet ud vha. response.write "<img border=1 src="&rs("billede")&" width=200><br><br>"
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:31 #5
det er til at få lange dadler af, der er ingen af de 2 der virker der. Bruger jeg dit forslag 2, så kommer der ikke engang <img> koden frem på siden. så er den helt væk.
Avatar billede kalp Novice
25. september 2005 - 00:32 #6
strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "<img border=1 src="'&rs("billede")&'" width=200><br><br>"
end if


blot et bud.. jeg arbejder ikke rigtig med access:)
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:37 #7
hmmm det er sgu da for mærkeligt. Det lader til at den "glemmer" hvad der står i feltet "billede" når den hopper ned til else i if-sætningen. Jeg har fået det til at virke ved at gentage sql-sætningen efter else:

strSQL= "SELECT * FROM brugere WHERE '"&spasser&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
strSQL= "SELECT * FROM brugere WHERE '"&spasser&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
response.write "<img border=1 src='"&rs("billede")&"' width=200><br><br>"
end if
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:37 #8
men smid lige et svar, så du kan få nogen point, du løste jo mit oprindelige spørgsmål,

og tak for hurtige svar og god hjælp :D
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:39 #9
forresten, mine ændringer i sql-sætningen har ikke betydet noget, da det den sætning jeg har arbejdet med hele tiden (ændrede det lige efter jeg stillede det oprindelige spørgsmål)
Avatar billede kalp Novice
25. september 2005 - 00:40 #10
Nu ved jeg som sagt ikke helt hvordan access fungere.. men hvis du kan gemme billede i en variabel så bliver den i hvertfald ikke glemt:)
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:42 #11
det skulle man sagtens kunne, men jeg er rimelig newb til asp og alt andet kodning for den sags skyld - men det vil jeg da undersøge som en mulighed.

tak for hjælpen!
Avatar billede kalp Novice
25. september 2005 - 00:46 #12
Hvis den kode vi lige har arbejdet med er på en ASP side så skal du gøre sådan her..

strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "<img border=1 src=<% rs("billede") %> width=200><br><br>"
end if

eller hvis du vil gemme det i en variabel.. oprette din variabel først

fx.

dim minVariabel

minVariabel = rs("billede")

og ændre koden til

strSQL= "SELECT billede FROM brugere WHERE "&session.contents("login")&"'=brugernavn;"
Set rs = Conn.Execute(strSQL)
If rs("billede") = "" OR rs("billede") = " " THEN
response.write "<img border=1 src=intetbillede.jpg width=200><br><br>"
else
response.write "<img border=1 src=<% minVariabel %> width=200><br><br>"
end if

men jeg skal ikke forvirrer dig mere end højest nødvendigt:P

Glad for at vi fik løst det oprindelige spørgsmål:)
Avatar billede bjoern_bertelsen Nybegynder
25. september 2005 - 00:49 #13
det kan være jeg leger lidt med det hvis jeg får lyst. Lige nu er jeg bare glad for at det virker, så går jeg ikke så meget op i hvordan kodningen ser ud.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester