/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
data med mellemrum !!
Fra : Otto


Dato : 27-01-03 13:47

Hej derude
Jeg er ved at lave nogle sider som skal vise et skoleskema fra en DB på web.
Problemet er at et af mine felter i DB 'en indeholder data som:
1a hi
1a bi
ect
Datatypen er text
Jeg skal lave en forspørgsel hvor jeg skal hente f.eks alle data for
'1a hi'
men får kun resultatet '1a'
nellemrummet (_) mellem 1a_hi driller mig.
Jeg syntes jeg har prøvet alt med TRIM , HTMLENcode og URLENcode
du kan sse udviklingsiden på
http://213.237.9.227/fhf-intranet/skema/hold.asp

håber en af jer kan hjælpe mig videre

hilsen Otto



--
_______________________________________________

Link database: http://www3.brinkster.com/otto/web-links/
_______________________________________________

Otto Leholt - Baggesensgade 19 , 2200 N , Copenhagen
tlf 3537 4928 mobil: 2076 9094 http://www3.brinkster.com/otto/home.asp
_______________________________________________



 
 
Jens Gyldenkærne Cla~ (27-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-01-03 14:38

Otto skrev:

> Jeg skal lave en forspørgsel hvor jeg skal hente f.eks alle
> data for '1a hi'

Er '1a hi' etc. nøgleværdier? (eller findes der en anden
primærnøgle i den tabel hvor værdierne hører hjemme).

> men får kun resultatet '1a'
> nellemrummet (_) mellem 1a_hi driller mig.

Af flere årsager vil jeg foreslå dig at bruge en talværdi til at
identificere klasserne.

Hvis du ikke allerede har en klassetabel, så opret en nu. Hver
klasse har et id-nr (primærnøgle, autonummer), et navn og evt.
andre egenskaber.

Alle de steder hvor du henviser til klassenavnet nu skal du rette
så det i stedet er id-nummeret der henvises til. I din selectliste
kan du benytte value-parameteren til at vise det rigtige navn, men
sende talværdien

(eksempel:
   <select>
       <option value="1">1a hi</option>
       <option value="2">1a lo</option>
       ...
   </select>
)


> Jeg syntes jeg har prøvet alt med TRIM , HTMLENcode og
> URLENcode

Hvis du benytter post i stedet for get i din form skulle der ikke
komme ekstrategn ind i dine variable. Samtidig kan andre ikke lige
så nemt sende andre data end dem du har i listen til din form.

Med get kan du måske omgå problemet ved at erstatte "+" og "%20"
med mellemrum - men det er ikke en god løsning.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Otto (27-01-2003)
Kommentar
Fra : Otto


Dato : 27-01-03 17:32


"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns931094E0EDA11jcdmfdk@gyrosmod.dtext.news.tele.dk...

> Er '1a hi' etc. nøgleværdier? (eller findes der en anden
> primærnøgle i den tabel hvor værdierne hører hjemme).

Ja der er et nøglefelt 'ID' til alel poster. Men det kan jeg vist ikke
bruge - da et hold/klasse som f.eks '1a hi' har timer fordelt over flere
lektioner i unes løb.
En post i databasen repræsentaerer en bestemt lektion i ugens skema.
f.eks :
ID hold fag navn dag lektion lokale
1 1dk fk fy ALU 1 1 fys

holdet her ' 1dk fk' har 1.dag (mandag) en time i 1. lektion, men har jo
også timer senere på ugen . Samme hold men ny post i ugeskemaet.

> Af flere årsager vil jeg foreslå dig at bruge en talværdi til at
> identificere klasserne.
>
> Hvis du ikke allerede har en klassetabel, så opret en nu. Hver
> klasse har et id-nr (primærnøgle, autonummer), et navn og evt.
> andre egenskaber.

Ja det gør jeg også normalt - problemet er at data allerede findes og der er
527 poster.
Jeg har prøvet at kopiere posterne ID og hold over i ny tabel - men Access
tager kun 22 poster med . ...så... det kan jeg åbenbart ikke.



> Hvis du benytter post i stedet for get i din form skulle der ikke
> komme ekstrategn ind i dine variable. Samtidig kan andre ikke lige
> så nemt sende andre data end dem du har i listen til din form.

Ok det prøver jeg.....


hilsen Otto




Otto (27-01-2003)
Kommentar
Fra : Otto


Dato : 27-01-03 18:20

Hej igen
jeg tror jeg har løst problemet med RePlace

strhold = request("Strhold")
strhold = RePlace(strhold, "+", " ")

Herefter kan jeg lave forespørgsler på 'strhold'

Hilsen Otto



Jens Gyldenkærne Cla~ (27-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 27-01-03 21:49

Otto skrev:

>> Er '1a hi' etc. nøgleværdier? (eller findes der en anden
>> primærnøgle i den tabel hvor værdierne hører hjemme).
>
> Ja der er et nøglefelt 'ID' til alel poster. Men det kan jeg
> vist ikke bruge - da et hold/klasse som f.eks '1a hi' har
> timer fordelt over flere lektioner i unes løb.

Hvor mange tabeller har du? I en relationel database skal hver
entitet have sin egen tabel. En entitet er fx en klasse, et lokale
eller et fag.

> En post i databasen repræsentaerer en bestemt lektion i ugens
> skema. f.eks :
> ID hold fag navn dag lektion lokale
> 1 1dk fk fy ALU 1 1 fys

Det jeg mener er at hold, fag, lokale og muligvis navn (er det navn
på læreren eller hvad?) er selvstændige entiteter som hører til i
separate tabeller. Man kan gemme mange oplysninger for hver
entitet, men når man bruger en entitet uden for dens egen tabel
sker det altid kun ved hjælp af primærnøglen.

Et eksempel med udgangspunkt i din nuværende tabel kunne være
følgende:

tbl_hold (indeholder oplysninger om hold)
Felter: holdID, holdnavn, maxpladser

tbl_fag
Felter: fagID,   fagnavn, fagkode

tbl_lokaler
Felter: lokaleID, lokaleNavn, beskrivelse

tbl_undervisere
Felter: uID, uKode, Fornavn, Efternavn, Adresse,...

tbl_lektioner (svarer til din nuværende tabel)
Felter lektionsID, holdID, fagID, uID, dag, lektion, lokaleID

Lektionstabellen refererer til alle de andre tabeller ved hjælp af
fremmednøgler - dvs. primærnøglerne fra de forskellige tabeller. På
den måde kan man på samme tid gemme mange forskellige oplysninger
(fx adresseoplysninger på lærere) uden at skulle indtaste en eneste
oplysning mere end én gang.


>> Hvis du ikke allerede har en klassetabel, så opret en nu.
>> Hver klasse har et id-nr (primærnøgle, autonummer), et navn
>> og evt. andre egenskaber.
>
> Ja det gør jeg også normalt - problemet er at data allerede
> findes og der er 527 poster.

Man kan godt normalisere data fra en stor tabel til flere små. Jeg
tror faktisk at Access har en guide indbygget til netop det - spørg
evt. i Accessgruppen.

> Jeg har prøvet at kopiere posterne ID og hold over i ny tabel
> - men Access tager kun 22 poster med . ...så... det kan jeg
> åbenbart ikke.

Du skal ikke kopiere id-numrene - de er gode nok til den tabel der
bliver tilbage efter normaliseringen. Du skal derimod kopiere alle
værdier af fx hold over i en ny tabel og så lave nye id-numre dér
(alle tabeller skal bruge en primærnøgle/id-felt).

Det kunne fx være

   SELECT DISTINCT hold
   INTO tbl_hold
   FROM gammelTabel

Så skulle du få en række for hvert holdnavn. Åbn tabellen i
designvisning, tilføj et autonummerfelt og gør det til primærnøgle
- så har du id-numre til tbl_hold.

Men som du måske kan ane er det en stor opgave at normalisere en
database - ikke mindst når der indgår så mange entiteter som det er
tilfældet her. Det vil stadig være den mest elegante måde at
organisere databasen på, men det kan anbefales at købe en bog om
databaser inden du går i gang.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste