Avatar billede Thomas Knudsen Nybegynder
03. januar 2002 - 19:34 Der er 4 kommentarer og
1 løsning

Rækkefølge af over/underskrifter i en While-løkke

Jeg trækker nogle lande og destinationer til en snemeldingsside ud af en database vha ASP. For hvert LAND skal der udskrives en række destinationer. LAND skal være en overskrift een gang for en række af dest. i samme land.
Min ide var, at hvis landets navn skifter skal der laves en ny overskrift.

var land = \"\"; // Blot en testvariabel, for at se om navn på landet skifter

// Data udplukkes fra DB via en While-Løkke
// vis_land er det faktiske land fra DB
// Hvis de ikke er ens skal der laves en overskrift
if (!land==vis_land){
Response.Write (\"<tr><td colspan=7><p>\"+vis_land+\"</p></td></tr>\\n\");
Response.Write (\"<tr><td colspan=7><hr width=\'100\' align=\'left\' noshade size=\'1\'></td></tr>\\n\");
}

// Ellers bare skriv destination som normalt
land = vis_land; // Opdater testvariablen

res.MoveNext(); // går til næste record


Men det virker ikke.
Den skriver ingen LANDE, men skulle den ikke fange \"uoverensstemmelsen\" i IF sætningen?
Har prøvet alt muligt men har nu stirret mig blind på det.
Hjælp modtages med tak   
Avatar billede jakoba Nybegynder
03. januar 2002 - 20:09 #1
var det ikke nemmere at lave 2 whileløkker inden i hinanden:

// læs første fra DB
while  ( række klar fra DB ) {
    vis_land = land
    // skriv en landeoverskrift.
    while ( land == vis_land ) {
        // skriv rækkedata
        // hent ny række fra DB
    } //endwhile
} //endwhile

mvh JakobA
Avatar billede Thomas Knudsen Nybegynder
05. januar 2002 - 00:05 #2
Jeg beklager Jacoba, da du ellers er min favorit herinde *bukker mig i gruset*, men det var IF sætningen som drillede.
Sammenligningen fungerede først, når jeg lavede Var om til String og lavede IF således
if (land.toUpperCase()!=vis_land.toUpperCase())

Kan du forklare mig hvorfor, så får du point alligevel. I andre tilfælde har jeg fint undværet konvertering af Case.

/Thomas
Avatar billede jakoba Nybegynder
05. januar 2002 - 03:46 #3
    if (!land==vis_land){
      ...
operatoren ! alene har meget høj prioritet og forventer en boolean værdi som eneste operand. og \"\" fortolket som boolean er false så hvis land har værdien \"\" bliver udtrykket til:
    if ( true == vis_land ) {
det vil så tvinge vis_land til også at blive fortolket som en boolean, og hvis vis_land har en hvilkensomhelst anden værdi end \"\" bliver den så set som true
    if ( true == true ) {
og det er jo altid sandt.

Det der automatiske typekonvertering i javascript har sine bagsider :-)

mvh JakobA
Avatar billede Thomas Knudsen Nybegynder
05. januar 2002 - 11:40 #4
Dejligt at lære her på Eksperten.
Smid lige et svar Jacoba, så får du points!

/Thomas
Avatar billede jakoba Nybegynder
05. januar 2002 - 15:35 #5
anytime :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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