Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Uppdatera/Skapa ny post?

Postades av 2005-02-08 11:41:33 - Jonas Engström, i forum asp - allmänt, Tråden har 6 Kommentarer och lästs av 462 personer

Hej

Nu är jag helt förlorad.
Har testat alla möjliga lösningar och jag bara målar in mig i hörn hela tiden. Blir snart galen.

Jag har en databas med t_Kurser och t_Kurser_Tillfällen. Databasstrukturen är bra.
För varje tillfälle skapas en unik post i t_Tillfällen som i sin tur knyts till id_Kurs.

I administrationssidan väljer man antingen att skapa en kurs eller redigera en kurs från listan.

När en kurs skapas väljer man antal tillfällen från en dropdown och med hjälp av dhtml, hidden/visible, visas input-fält motsvarande antal tillfällen. Varje tillfälle har start/slutdatum och dessa har med hjälp av javascript varsin kalender-popup som "asignar" klickat datum till input-fältet. Varje start/slutdatum-fält måste därför ha unika namn, startDatum1, StartDatum2 osv.

Av denna anledning så har uppdateringssidan följande klumpiga lösning:

<code>

SQL = "SELECT * FROM t_Kurser"

if edit = "" then
RecSet.AddNew
end if

RecSet("Kursnamn") = Request("kursnamn")
RecSet("Beskrivning") = Request("beskrivning")

RecSet.Update

RecSet.Close

SQL2 = "Select * FROM t_Kurser order by kursId desc"
RecSet.Open SQL2
aktuellt_kursId = RecSet("kursId")
RecSet.close

antal_tillfallen = Request("antal_tillfallen")

StartDatum1 = Request("StartDatum1 ")
SlutDatum1 = Request("SlutDatum1")
StartDatum2 = Request("StartDatum2")
SlutDatum2 = Request("SlutDatum2") ' *** osv....

'*** om det ska skapas ny kurs:

if Request("edit") = "" then

select case antal_tillfallen
case 1:

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & StartDatum1 & "', '" & SlutDatum1 & "')"
Conn.execute(SQL)


case 2:

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & StartDatum1 & "', '" & SlutDatum1 & "')"
Conn.execute(SQL)

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & StartDatum2 & "', '" & SlutDatum2 & "')"
Conn.execute(SQL)

case 3 ' *** osv...

</code>

Inte bra, men det fungerar. Problemet blir när jag ska uppdatera en befintlig kurs.
Om jag då väljer en kurs med 2 tillfällen och sedan väljer 5 tillfällen från dropdownlistan, fyller på start/slutdatum för varje tillfälle och skickar iväg 5 antal_tillfallen, så räcker inte min select case-lösning till. Det blir alldeles för komplex. "Update - här" & "insert into - där" "antal_tillfallen - ursprungligt_antal_tillfallen" Ingen aning :)
Kan någon hjälpa, snälla?


Svara

Sv: Uppdatera/Skapa ny post?

Postades av 2005-02-08 13:40:48 - Jesper Thörn

<code>if Request("edit") = "" then
For i = 1 to antal_tillfallen

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & StartDatum& i & "', '" & SlutDatum& i & "')"
Conn.execute(SQL),,128

Next

End if</code>


Svara

Sv:Uppdatera/Skapa ny post?

Postades av 2005-02-08 14:26:46 - Jonas Engström

Det går väl inte att lägga samman variabler sådär?


Svara

Sv: Uppdatera/Skapa ny post?

Postades av 2005-02-08 15:02:17 - Per Persson

Kan du inte använda en array i stället?

StartDatum(1) = Request("StartDatum1 ")
SlutDatum(1) = Request("SlutDatum1")
StartDatum(2) = Request("StartDatum2")
SlutDatum(2) = Request("SlutDatum2") 


Då kan du sedan ändra Jespers förslag till
if Request("edit") = "" then
For i = 1 to antal_tillfallen

     SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & StartDatum(i) & "', '" & SlutDatum(i) & "')" 
Conn.execute(SQL),,128

Next

End if


Svara

Sv:Uppdatera/Skapa ny post?

Postades av 2005-02-08 16:30:08 - Jonas Engström

Utmärkt, då har jag lärt mig ett smidigare sätt att hantera variblerna.

<code>
arrStartDatum = Array(StartDatum1, StartDatum2, StartDatum3, StartDatum4, StartDatum5, StartDatum6)
arrSlutDatum = Array(SlutDatum1, SlutDatum2, SlutDatum3, SlutDatum4, SlutDatum5, SlutDatum6)

For i = 0 to (antal_tillfallen-1)

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, StartDatum, SlutDatum) values('" & aktuellt_kursId & "', '" & arrStartDatum(i) & "', '" & arrSlutDatum(i) & "')"
Conn.execute(SQL)

Next

</code>

Nånting sånt va?

Nu kan jag lägga till en kurs utan en massa onödig kod.


Men huvudproblemet återstår; Hur Ska jag uppdatera <b>befintlig</b> kurs?
Om antal_tillfallen är 4 istället för tidigare inlagt 3, ska ju de 3 posterna i t_Kurser_Tillfallen med samma kursId behållas och en ny ska läggas till.
Om däremot antal_tillfallen är 2 ska den sista posten i t_Kurser_Tillfallen tas bort.
Hur tusan hanterar man det?

Uttrycker jag mig begripligt?


Svara

Sv: Uppdatera/Skapa ny post?

Postades av 2005-02-09 10:41:28 - Jonas Engström

Ingen som vill hjälpa?


Svara

Sv:Uppdatera/Skapa ny post?

Postades av 2005-02-10 09:06:08 - Jonas Engström

Eftersom ingen ville svara fick jag lösa det själv ;)
(Om någon är intresserad)
Kommentera gärna, jag är ingen hävert på detta som ni ser.

<code>
'**** Gör om datumsträngarna till arrays

arrStartDatum = Array(Cdate(Trim(Request("DATEFIELD1")) & " " & Trim(Request("Tid1"))), Cdate(Trim(Request("DATEFIELD2")) & " " & Trim(Request("Tid2"))),_
'osv

'**** Gör om requeststrängar som inte är individuellt defininierade till arrays

arrPlats = Split(request("plats"),",")
arrAntal = Split(request("antal"),",")
arrKostnad = Split(Request("kostnad"),",")
osv

'**** Fixa till De som behöver rätt datatyp
sub SubfixaNollvarde(variabel)

i = 0
for each item in variabel
variabel(i) = Trim(variabel(i))
if variabel(i) = "" then variabel(i) = Cint(0)
i = i+1
Next
end sub

SubfixaNollvarde arrAntal
SubfixaNollvarde arrKostnad
'osv

'**** Uppdatera t_Kurser med info

osv..

'**** Hämta senaste Aktuellt kursId frång t_Kurser

osv..

'**** Lägg in tillfällen i t_Kurser_Tillfallen om det är en ny kurs

if edit = "" then

For i = 0 to (antal_tillfallen-1)

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, Alt_Beskrivning, StartDatum, SlutDatum,
SQL = SQL & "values('" & aktuellt_kursId & "', '" & arrAlt_beskrivning(i)& "', '" & arrStartDatum (i)& "', '" & arrSlutDatum(i)& "')"
Conn.execute(SQL)

Next

'**** Annars Uppdatera Befintlig kurs

'******* Ta fram Id_Tillfalle

i = 0
for each item in arrId_Tillfalle
if arrId_Tillfalle(i) = Foregaende_Id then exit for
Foregaende_Id = arrId_Tillfalle(i)
i = i+1
Next

'******* Kolla hur många ggr > eller < dropdown-valet är, jämfört med org antal tillfällen

antal_tillfallen_som_har_id = i
valt_antal_tillfallen = antal_tillfallen

atgard = valt_antal_tillfallen - antal_tillfallen_som_har_id

if atgard = 0 then

'******* Uppdatera t_Kurser_Tillfallen med loopade Id_tillfallen
i = 0
for each item in arrId_Tillfalle
if arrId_Tillfalle(i) = Foregaende_Id then exit for

SQL = "UPDATE t_Kurser_Tillfallen "
SQL = SQL & "Set Alt_Beskrivning = '" & arrAlt_beskrivning(i)
SQL = SQL & "', StartDatum = '" & arrStartDatum(i)
SQL = SQL & "', SlutDatum = '" & arrSlutDatum(i)
SQL = SQL & "' Where id_Tillfalle = " & arrId_Tillfalle(i)

Conn.execute(SQL)
'Response.write(SQL & "<br><br>")

Foregaende_Id = arrId_Tillfalle(i)
i = i+1
Next
response.write("Du har nu uppdaterat dina tillfällen")
response.end

elseif atgard < 0 then

'******* Uppdatera Tillfällen med loopade Id_tillfallen och radera med antal -
'Inget bra sätt att ta bort tillfällen, får tänka ut ngt annat

elseif atgard > 0 then

'******* Uppdatera Tillfällen med loopade Id_tillfallen och lägg till med antal +

i = 0
for each item in arrId_Tillfalle
if arrId_Tillfalle(i) = Foregaende_Id then exit for
'response.write(arrId_Tillfalle(i) & "<br>")

SQL = "UPDATE t_Kurser_Tillfallen "
SQL = SQL & "Set Alt_Beskrivning = '" & arrAlt_beskrivning(i)
SQL = SQL & "', StartDatum = '" & arrStartDatum(i)
SQL = SQL & "', SlutDatum = '" & arrSlutDatum(i)
SQL = SQL & "' Where id_Tillfalle = " & arrId_Tillfalle(i)

Conn.execute(SQL)

Foregaende_Id = arrId_Tillfalle(i)
i = i+1
Next

for i = (antal_tillfallen_som_har_id ) to ((antal_tillfallen_som_har_id-1) + atgard)
'response.write("lägg in tillfälle" & i & "<br>")

SQL = "INSERT INTO t_Kurser_Tillfallen(kursId, Alt_Beskrivning, StartDatum, SlutDatum_SQL = SQL & "values('" & aktuellt_kursId & "', '" & arrAlt_beskrivning(i)& "', '" & arrStartDatum(i)& "', '" & arrSlutDatum(i)& "')"
Conn.execute(SQL)

next
</code>




Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 783
27 960
271 761
517
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies