[ASP] Waarde uit database als plaatje weergeven

Pagina: 1
Acties:

  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Via rs.Fields("event") haal ik een lijstje van waardes op uit een SQL database die ik even ervoor er in heb gezet via een andere pagina. Deze waardes zijn gewoon woorden. Nu wil ik echter niet dat deze woorden weergegeven worden als zijnde woorden, maar deze moeten vervangen worden door kleine plaatjes. Een kort voorbeeld want ik ben waarschijnlijk niet erg duidelijk:

Via pagina één submit ik een waarde in een SQL database. Deze waarde is bijvoorbeeld de woorden "Gathering of Tweakers". Vervolgens wil ik op pagina twee dus niet deze zin terug krijgen uit de database, maar ik wil bijvoorbeeld het GoT logo hiervoor in de plaats te zien krijgen.

Het is geen optie om in SQL plaatjes op te nemen. Op pagina twee zal dus meen ik een soort conversie moeten plaats vinden die de waardes omzet naar de bijbehorende plaatjes. Nog even dit, er zijn totaal vijf verschillende waardes (zinnen) die in de database staan. Dit zijn dus zeg maar gewoon vaste waardes.

Not trying to pretend the enemy that I am.


  • tazzman
  • Registratie: Juli 2000
  • Laatst online: 05-01 10:48

tazzman

a real boardmonkey

Erhm misschien begrijp ik je verkeerd maar dan neem je toch in de SQL Database een "logo-table" op een "event", en "logo URL".. en dan neem je dat op in je SQL query zodat je eigenlijk alleen het URL voor het plaatje op haalt?

Heb ik het ff mis, vergeef me - het is vroeg en de koffie is nog niet klaar :z

Het nieuwe speelgoed: een Saab 9-3 Aero (absoluut, helemaal en compleet fantastisch....)


  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Of ik begrijp jou niet of jij mij niet. In de database die ik uitlees staat een kolom met de naam event. Deze kolom is zeg maar duizend regels lang. Er zijn vijf verschillende standaard waardes mogelijk per regel: waarde één is bijvoorbeeld change, waarde twee is bijvoorbeeld general, et cetera. Stel, ik vraag een entry op met als waarde change. Nu wil ik niet het woord change zien op mijn pagina, maar een plaatje wat het woord voorstelt. Ik wil geen plaatjes in de SQL database, dus er zal in de ASP code iets gedaan moeten worden hiervoor... Maar wat?

Not trying to pretend the enemy that I am.


Verwijderd

Je kan bijvoorbeeld gebruik maken van [img]'<eventnaam>.jpg'[/img] ofzoiets of een extra tabel maken met de verschillende eventwaarden en bijbehorend plaatje maken en deze later met een join gebruiken.

stel:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<tabel 1>
event    anderekolom
-----    -----------
change   andere waarde
general  miauw

<tabel 2>
eventcode  plaatje
---------  ----------
change     wijzig.gif
general    blah.gif

SQL:
select * from tabel1 right join tabel2 on tabel1.event=tabel2.eventcode;

dan kan je dus net rs.Fields('plaatje') ofzo (doe niet aan ASP) je bestandsnaam eruit halen

  • Ramon
  • Registratie: Juli 2000
  • Laatst online: 20:17
als die waardes vaststaan, kan je van te voren die plaatjes maken en dan doen

if( rs.Fields("event") == "change" ) { imageURL = "change.gif" }

dit werkt natuurlijk alleen als vaststaat welke informatie er in die kolom komt / kan komen.

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • Wally-S
  • Registratie: September 2001
  • Laatst online: 18:53

Wally-S

-Snowboarding is art-

Snow is only frozen water


  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Op dinsdag 02 juli 2002 12:02 schreef Tampie2000 het volgende:
als die waardes vaststaan, kan je van te voren die plaatjes maken en dan doen

if( rs.Fields("event") == "change" ) { imageURL = "change.gif" }

dit werkt natuurlijk alleen als vaststaat welke informatie er in die kolom komt / kan komen.
Klaarblijkelijk begrijp je mijn probleem, gelukkig. Als ik jouw oplossing probeer werkt het echter nogsteeds niet. Ik krijg als eerste de melding:
code:
1
2
3
4
5
6
7
8
Microsoft VBScript compilation error '800a03ea' 

Syntax error 

/logbook/test1.asp, line 24 

if( rs.Fields("event") == "Change" ) { imageURL = "images/reboot.gif" }
------------------------^

Het dubbel = teken schijnt niet te mogen. Jouw code heb ik ietsjes aangepast tot het volgende:
code:
1
If( rs.Fields("event") == "Change" ) { imageURL = "images/reboot.gif" }

Ik haal dus één = teken weg, maar krijg dan de volgende melding:
code:
1
2
3
4
5
6
7
8
Microsoft VBScript compilation error '800a0408' 

Invalid character 

/logbook/test1.asp, line 24 

If( rs.Fields("event") = "Change" ) { imageURL = "images/reboot.gif" }
------------------------------------^

Het { teken mag blijkbaar ook niet. Na nog meer pogingen en nog meer foutmeldingen kom ik op de volgende code:
code:
1
If rs.Fields("event") = "1" Then imageURL = "images/reboot.gif"

Dit werkt ook weer niet en nu weet ik het niet meer. Misschien dat jij nog een idee hebt of misschien iemand anders die ziet wat ik fout doe?

Not trying to pretend the enemy that I am.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Tip: Pak om te beginnen eens een ASP / VBScript tutorial erbij. Je probeert nu namelijk JScript in VBScript te plaatsen (en dat kan niet)

Verder kan je eens kijken naar het datatype; "1" != 1

En welk datatype is event in de db? String? Integer? Boolean?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Ik doe het op deze manier, misschien een beetje omslachtig maar het werkt wel!
code:
1
2
3
4
5
6
7
<% 
if (Recordset.Fields.Item("veldnaam").Value) = "waarde" then
%>
  [img]"_Pictures/V.bmp"[/img] 
<% else %>
  [img]"_Pictures/X.bmp"[/img] 
<% end if %>

En dit kan je natuurlijk met 'else if.....' doorvoeren met het aantal plaatjes wat je weer wilt geven.

  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Ik kom er nogsteeds niet uit. De eerder genoemde web sites bekeken, diverse andere web sites door gewoeld, maar zonder resultaat.

Normaal gaf ik gewoon de waarde weer via de volgende code:
code:
1
Response.Write("<TD WIDTH=200><FONT FACE=VERDANA SIZE=1>" & rs.Fields("event") & "</FONT></TD>")

Nu wil ik dus inplaats van de gedisplayde text een plaatje. De waarde van 'event' in de database is van het type 'nvarchar'. Hier kunnen vijf standaard zinnen in staan. Ik wil dus dat die zin niet op het beeld verschijnt, maar een plaatje dat de zin voorstelt.

Voorbeeld: de waardes kunnen zijn aap, kat, hond, lama en schaap, de plaatjes worden dan die van een aap, kat, hond, et cetera.

Not trying to pretend the enemy that I am.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 04-09 13:35

gorgi_19

Kruimeltjes zijn weer op :9

Nvarchar? Ik heb destijds problemen gehad met extra spaties na de output; heb je deze bekeken? Mocht je deze hebben, dan moet je de resultaten eerst 'trimmen'

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Heb je het dan al zo geprobeerd.
simpel maar doeltreffend :)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<% 
if (recordsetnaam.Fields.Item("event").Value) = "aap" 
then
%>
  [img]"Pictures/aap.jpg"[/img] 
<%
else if (recordsetnaam.Fields.Item("event").Value)= "hond" then
%>
  [img]"Pictures/hond.jpg"[/img] 
<%
else if (recordsetnaam.Fields.Item("event").Value)= "kat"
then
  [img]"Pictures/kat.jpg"[/img]
<% 
end if
end if
end if
%>

Verwijderd

Misschien is dit een ideetje aangezien je de vorige suggesties niet oppikte:
code:
1
Response.Write("<TD WIDTH=200>[img]'"[/img]</TD>")

ik hoop dat je snapt dat je dan wel de plaatjes change.jpg en general.jpg enzo moet hebben

  • eNaSnI
  • Registratie: November 2001
  • Niet online
Op dinsdag 02 juli 2002 14:37 schreef Beeehhh het volgende:
Misschien is dit een ideetje aangezien je de vorige suggesties niet oppikte:
code:
1
Response.Write("<TD WIDTH=200>[img]'"[/img]</TD>")

ik hoop dat je snapt dat je dan wel de plaatjes change.jpg en general.jpg enzo moet hebben
JAAA eindelijk de oplossing, lang verwacht toch nog gekomen. B-)

Wie zoekt, zal vinden http://www.google.com


  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
Waarom niet de database met een SQL openen, en dan van het huidige record (dus die met de event code die overeenkomt) het plaatje pakken??

Zelfde zou natuurlijk ook kunnen met een loop (bij eerste beginnen en dan bij elk record kijken of de event overeenkomt) of een if statement zoals hierboven al stond..

Verwijderd

Oh jah nu we toch bezig zijn vergeet je 'event' veld niet te 'trimmen' en naar lowercase om te zetten. Dat scheelt misschien weer 4 postings.

  • eNaSnI
  • Registratie: November 2001
  • Niet online
Op dinsdag 02 juli 2002 14:44 schreef Beeehhh het volgende:
Oh jah nu we toch bezig zijn vergeet je 'event' veld niet te 'trimmen' en naar lowercase om te zetten. Dat scheelt misschien weer 4 postings.
IDD das een goede suggestie !! 8-) En ff juiste plaatjesformaat gebruiken natuurlijk want .BMP werkt niet (en als je bij ieder record een .BMP neer gaat zetten wens ik je veel plezier met je ruimtelijke DB)

Wie zoekt, zal vinden http://www.google.com


  • .GoO
  • Registratie: September 2001
  • Laatst online: 26-08 10:06
Op dinsdag 02 juli 2002 14:46 schreef eNaSnI het volgende:

[..]

IDD das een goede suggestie !! 8-)
Op dinsdag 02 juli 2002 14:41 schreef eNaSnI het volgende:

[..]

JAAA eindelijk de oplossing, lang verwacht toch nog gekomen. B-)
Uhm, jouw posts zijn nuttig?

  • eNaSnI
  • Registratie: November 2001
  • Niet online
Op dinsdag 02 juli 2002 14:47 schreef devv05 het volgende:

[..]


[..]

Uhm, jouw posts zijn nuttig?
Euuhhm, al geëdit hoor, beter opletten ;)

Wie zoekt, zal vinden http://www.google.com


  • Arie
  • Registratie: Oktober 2001
  • Laatst online: 04-09 14:23

Arie

One Man Army

Topicstarter
Op dinsdag 02 juli 2002 14:37 schreef Beeehhh het volgende:
Misschien is dit een ideetje aangezien je de vorige suggesties niet oppikte:
code:
1
Response.Write("<TD WIDTH=200>[img]'"[/img]</TD>")

ik hoop dat je snapt dat je dan wel de plaatjes change.jpg en general.jpg enzo moet hebben
Dat ik de plaatjes moet hebben met de naam van de waarde, dat snap ik ook nog wel... maar deze oplossing had ik dus zelf gewoon moeten weten! Het werkt perfect op deze manier. Precies wat ik wilde. Bedankt! Iedereen trouwens bedankt die mee heeft gedragen aan dit topic! Ik ben weer blij :)

Not trying to pretend the enemy that I am.


  • eNaSnI
  • Registratie: November 2001
  • Niet online
Ik zei het al maar dan krijg je van die loze opmerkingen dat mijn opmerkingen nergens over gaan maar lezen blijft een vaak apart natuurlijk :)

Wie zoekt, zal vinden http://www.google.com

Pagina: 1