webForumDet fria alternativet

Problem med uppdate

5 svar · 332 visningar · startad av saw

sawMedlem sedan mars 20011 880 inlägg
#1

Jag har nog murat in mig själv i ett hörn.
Jag bygger en site för konstnärer.
De får ha 5 st bilder var.
De flesta uppgifterna om konstnären ligger i t_medlem medans
bildnamn mm ligger i t_medBild.
När jag editera konstnärerna, så ligger bilderna i en array (alla
bilnamn i samma form ger mig arrayen).
Därefer så ser koden ut så här:

Case "Uppdatera"

SQL = "Update t_medlem  Set Namn ='" & sNamn & "', " & _
 "Adress ='" & sAdress  & "',Ort ='" & sOrt  & "', " & _
 "Epost ='" & sEpost  & "',Tel ='" & ValidTel(sTel)  & "' , " & _
 "Hemsida ='" & sHsida  & "',Teknik ='" & TRIM(sTekn) & "' " & _
 "WHERE ID ="& Request("Id")
Connection.Execute(SQL)

if LEN(Request("Id"))>0 then

Dim heigest
sNmedBild = split(smedBild, ",", -1, 1)

heigest= UBound(sNmedBild) +1

if heigest < 5 then
Connection.Execute("DELETE  FROM t_medBild WHERE Id ="& Request("Id"))

For i = 0 to ubound(sNmedBild)
SQL = ("Insert INTO t_medBild(Id,Bild)VALUES( " & Request("Id") & ",'" & TRIM(sNmedBild(i)) & "' )")
				
Connection.Execute(SQL)
Next
else
For i = 0 to ubound(sNmedBild)
SQL = "Update t_medBild Set Bild = '" & TRIM(sNmedBild(i)) & "' WHERE Id ="& Request("Id")
'response.write SQL & "<BR>"
				
Connection.Execute(SQL)
Next
end if
end if
response.write sNamn & " är nu uppdaterad i databasen"

Jag trodde att jag var förståndig, men...
Vad som händer, om konstnären har 5 bilder, är att alla
uppdateras till samma bildnamn.
Hur bör jag lösa detta? :q

JosefMedlem sedan mars 20023 561 inlägg
#2

Du har inte lust att specifiera tabellerna lite mer?

sawMedlem sedan mars 20011 880 inlägg
#3

Naturligtvis.
I t_medlem

Id räknare Primärnyckel
Namn
Adress
Ort
Epost
Tel
Hemsida
Teknik
OK ja/nej

t_medBild
bild_id räknare Primärnyckel
Id främmande nyckel (t_medlem)
Bild
BildNamn
BildStorlek
Teknik
Visa ja/nej

Så har jag lagt upp det.

doggelitoMedlem sedan juni 20003 076 inlägg
#4

Du kan inte uppdatera med Id:t

SQL = "Update t_medBild Set Bild = '" & TRIM(sNmedBild(i)) & "' WHERE Id ="& Request("Id")

Eftersom id:t finns med på alla konstnärens bilder och då uppdateras ju alla bilderna.
Du måste alltså ta reda på bildid:t så att det blir:

SQL = "Update t_medBild Set Bild = '" & TRIM(sNmedBild(i)) & "' WHERE bild_id ="& Request("Bild_Id")

För att lyckas med detta så behöver du lägga med bildid:t i ditt formulär med bilderna. :)

sawMedlem sedan mars 20011 880 inlägg
#5

Då skiter det sig regält.
Jag låter näligen FSO leta igenom mappen för bilder, och det blir
inget bildID föränn den kommer in i databasen.

Det var ett handikap...

doggelitoMedlem sedan juni 20003 076 inlägg
#6

Jo, men kan du inte plocka ut bildid:t till formuläret vid uppdatering?
Inserten kan du ju ha som du har den, det är ju bara vid update du behöver bildid:t.

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)