Avatar billede mettecarsten Nybegynder
08. marts 2005 - 13:32 Der er 9 kommentarer og
1 løsning

Skrive til flere rækker i mysql-database

Hej eksperter

Jeg har følgende kode:

<%

id = Session("hid")

Hus = id

%>

<%
Uge = 0
SQL = "INSERT INTO Uge(Hus, Uge, Ledigt)"
SQL = SQL & "Values("
    SQL = SQL & "'" & Hus & "',"
    SQL = SQL & "'" & Uge & "',"
    SQL = SQL & "'" & "checked" & "'"
    SQL = SQL & ")"
    Conn.Execute(SQL) 
%>

<%
Uge = 1
SQL = "INSERT INTO Uge(Hus, Uge, Ledigt)"
SQL = SQL & "Values("
    SQL = SQL & "'" & Hus & "',"
    SQL = SQL & "'" & Uge & "',"
    SQL = SQL & "'" & "checked" & "'"
    SQL = SQL & ")"
    Conn.Execute(SQL) 
%>

<%
Uge = 2
SQL = "INSERT INTO Uge(Hus, Uge, Ledigt)"
SQL = SQL & "Values("
    SQL = SQL & "'" & Hus & "',"
    SQL = SQL & "'" & Uge & "',"
    SQL = SQL & "'" & "checked" & "'"
    SQL = SQL & ")"
    Conn.Execute(SQL) 
%>

<%
Uge = 3
.... osv.

Den er lavet efter "slavemetoden", da for...next virkelig har drillet. Ovenstående slutter ved uge 53, altså oprettelse af rækkerne for ugerne 0 - 53.

Når ovenstående sendes til mysql-databasen, så indsættes de ikke i rækkefølge, men i en vilkårlig rækkefølge.

Hvad går galt? Er det noget med, at min computer ikke "renses" for oplysninger? Skal noget stå bestemt i databasen?
Avatar billede fennec Nybegynder
08. marts 2005 - 14:40 #1
Det skulle gerne blive indsat i samme rækkefølge som du skriver det, men det er ikke nødvendigvis den rækkefølge du får dem ud igen, hvis du ikke har en "order by" på selecten.
Avatar billede mettecarsten Nybegynder
08. marts 2005 - 14:45 #2
De kommer faktisk ikke ud igen med "order by". Hvis jeg logger mig ind i mysql-databasen, så står de faktisk også i "rodet" rækkefølge. Så selv om ovenstående kode sender ugerne stigende, så bliver de fortsat rodet placeret i selve mysql-databasen ???
Avatar billede fennec Nybegynder
08. marts 2005 - 15:10 #3
mysql-databasen bruger også en select-sætning til at trække info ud med :o)

Det står rodet fordi, når man selecter (uden "order by") kommer posterne ud i samme rækkefølge som den finder dem på harddisken, og det er ikke nødvendig vis den rækkefølge de er blevet oprette i. Det er meget teknisk, og har noget at gøre med den måde databasen reservere plads på harddisken/hukommelse.

Hvis du har et index/primærnøgle på tabellen udskriver den gerne resultaterne i den rækkefølge, men jeg er ikke helt 100% sikker på det....
Avatar billede mettecarsten Nybegynder
08. marts 2005 - 15:34 #4
Ok, det lyder teknisk, men meget fornuftigt. Skal jeg så ikke fokusere så meget på, hvordan de står, når jeg logger mig ind i databasen, men i stedet for koncentrere mig om den måde, hvorpå de trækkes ud af databasen?
Avatar billede mettecarsten Nybegynder
08. marts 2005 - 15:35 #5
Mine data trækkes ud med dette:

<%
Hus = Request.Querystring("Id")

    Sql = "select id, Hus, uge, Ledigt, pris1, pris2 from Uge Where hus =" & Hus & " and uge Between 1 and 8"
    Set RS = conn.execute(SQL)
    Response.write "<tr>"
    %>   

Forkert ?
Avatar billede fennec Nybegynder
08. marts 2005 - 15:57 #6
Det er rigtig nok, men du mangler vel en "order by":

Sql = "select id, Hus, uge, Ledigt, pris1, pris2 from Uge Where hus =" & Hus & " and uge Between 1 and 8 order by id"
Avatar billede fennec Nybegynder
08. marts 2005 - 15:58 #7
eller:
Sql = "select id, Hus, uge, Ledigt, pris1, pris2 from Uge Where hus =" & Hus & " and uge Between 1 and 8 order by uge"
Avatar billede mettecarsten Nybegynder
08. marts 2005 - 16:29 #8
Det virker :-) :-) :-) :-) :-)

Havde brugt masser af tid på input, men ikke fokuseret på output !

Smid et svar - du har fortjent hvert et point.
Avatar billede mettecarsten Nybegynder
08. marts 2005 - 16:44 #9
Jeg lukker computeren nu, men giver point senere i aften eller i morgen. Endnu engang tak for hjælpen
Avatar billede fennec Nybegynder
08. marts 2005 - 16:48 #10
.o) <-- One Eyed Jack
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
Kurser inden for grundlæggende programmering

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