Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:07 Der er 24 kommentarer og
1 løsning

hjælp til sql 2

jeg har lavet følgende:

<%

if(session("sesbrugerid") <> "") then addpictures__MMColParam = session("sesbrugerid")

if(session("sesalias") <> "") then addpictures__MMColParam2 = session("sesalias")

%>
<%
value_billede = Request.Form("billede")
checkvalue = Request.Form("checkbox")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "Tilføjer Billeder..." End If
set addpictures = Server.CreateObject("ADODB.Command")
addpictures.ActiveConnection = MM_eventz_STRING
addpictures.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias)  VALUES (billede='" & value_billede & "', gbilledeid='" & checkvalue & "', brugerid='" + Replace(addpictures__MMColParam, "'", "''") + "', alias='" + Replace(addpictures__MMColParam2, "'", "''") + "') WHERE gbilledeid IN (" & checkvalue & ")"
addpictures.CommandType = 1
addpictures.CommandTimeout = 0
addpictures.Prepared = true
addpictures.Execute()
%>

men jeg får afvide at der mangler et semikolon i slutningen af sætningen på linie 60?

og i linie 60 står der:
addpictures.Execute()

håber i kan hjælpe mig lidt med den her...
Avatar billede kalp Novice
11. december 2008 - 15:15 #1
prøv: (så kan du se hvad der mangler i din sql.)

value_billede = Request.Form("billede")
checkvalue = Request.Form("checkbox")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "Tilføjer Billeder..." End If
set addpictures = Server.CreateObject("ADODB.Command")
addpictures.ActiveConnection = MM_eventz_STRING
addpictures.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias)  VALUES (billede='" & value_billede & "', gbilledeid='" & checkvalue & "', brugerid='" + Replace(addpictures__MMColParam, "'", "''") + "', alias='" + Replace(addpictures__MMColParam2, "'", "''") + "') WHERE gbilledeid IN (" & checkvalue & ")"
Response.Write(addpictures.CommandText)
Response.End
addpictures.CommandType = 1
addpictures.CommandTimeout = 0
addpictures.Prepared = true
addpictures.Execute()
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:18 #2
så udskriver den følgende:

INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias) VALUES (billede='', gbilledeid='', brugerid='', alias='') WHERE gbilledeid IN ()
Avatar billede softspot Forsker
11. december 2008 - 15:23 #3
Hvad er det du forsøger at gøre denne gang? Det er altid en god idé, når du opretter et spørgsmål, at fortælle lidt om baggrunden for din kode, dvs. hvad vil du gøre og hvad er det du arbejder med (i dette tilfælde lidt om datastrukturen).

Umiddelbart vil jeg mene du har fået blandet en UPDATE og en INSERT sammen. Hvis du vil indsætte, så ser det således ud:

addpictures.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias)  VALUES ('" & value_billede & "', '" & checkvalue & "', '" + Replace(addpictures__MMColParam, "'", "''") + "', '" + Replace(addpictures__MMColParam2, "'", "''") + "')"

Det vil sige, der er altså inden WHERE i en "simpel" INSERT, ej heller feltnavne i værdiliste (da værdierne specificeres i samme rækkefølge de er angivet i feltlisten og koblingen mellem værdi og felt dermed giver sig selv).
Avatar billede softspot Forsker
11. december 2008 - 15:25 #4
Rettelse af stavefejl: "...der er altså inden WHERE i en "simpel" INSERT..." skal naturligvis være: "...der er altså ingen WHERE i en "simpel" INSERT..."... :-)
Avatar billede kalp Novice
11. december 2008 - 15:25 #5
ja den der SQL er en cocktail:)
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:29 #6
okay softspot, det vil jeg da lige prøve, kan da godt se logikken i det nu vis jeg gider tænkte mig om, ja jeg ved godt jeg har oprettet en del spørgsmål de sidste par dage, men grunden til dette er at jeg er ved at lave www.eventz.dk og den skal være klar meget meget hurtigt hehe...
Avatar billede softspot Forsker
11. december 2008 - 15:39 #7
Jeg kan sagtens sympatisere med din antaget stressede situation, men derfor er det jo så meget desto mere vigtigt at du få stillet spørgsmålet så utvetydigt som muligt, så du kan få det hurtige svar ;-)
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:40 #8
nu har jeg lavet det sådan her:

<%
value_billede = Request.Form("billede")
checkvalue = Request.Form("checkbox")
brugerid = session("sesbrugerid")
alias = session("sesalias")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "<font color=""#00FF00"">Tilføjer Billeder...</font>" End If
set addpicture = Server.CreateObject("ADODB.Command")
addpicture.ActiveConnection = MM_eventz_STRING
addpicture.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias)  VALUES (" & value_billede &", " & checkvalue & ", " & brugerid & ", " & alias & ") WHERE gbilledeid IN(" & checkvalue & ")"
addpicture.CommandType = 1
addpicture.CommandTimeout = 0
addpicture.Prepared = true
addpicture.Execute()
%>

men nu får jeg følgende afvide:

Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Antallet af forespørgselsværdier og destinationsfelter er ikke det samme.
/eventz/e_galleri_event_billede2_add.asp, line 55

linie 55 er execute
Avatar billede softspot Forsker
11. december 2008 - 15:46 #9
Som jeg nævnte tidligere, er WHERE IKKE GYLDIG I FORBINDELSE MED EN INSERT... :-)

Du skulle bare bruge den SQL-sætning jeg viste dig.
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:47 #10
men for at give jer et lidt større indblik i det hele så hele denne funktion er at jeg har et galleri hvor brugerne skal kunne tilføje de markedede billder til deres eget personlige galleri,

det jeg vil have den skal gøre er at den skal tage data fra tabellen hvor billderne ligger i og indsætte dataen igen i:

favgalleri

håber det gav jer et lidt større indblik...
Avatar billede softspot Forsker
11. december 2008 - 15:48 #11
Men hvis du fortæller hvad du egentlig har gang i, så kan det jo være du kan få et svar der, om ikke 100% korrekt, så i det mindste bringer dig nærmere en løsning... ;-)
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:48 #12
okay nu har jeg så fjernet WHERE sætningen, men får stadigvæk sammen fejl:

<%
value_billede = Request.Form("billede")
checkvalue = Request.Form("checkbox")
brugerid = session("sesbrugerid")
alias = session("sesalias")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "<font color=""#00FF00"">Tilføjer Billeder...</font>" End If
set addpicture = Server.CreateObject("ADODB.Command")
addpicture.ActiveConnection = MM_eventz_STRING
addpicture.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias)  VALUES (" & value_billede &", " & checkvalue & ", " & brugerid & ", " & alias & ")"
addpicture.CommandType = 1
addpicture.CommandTimeout = 0
addpicture.Prepared = true
addpicture.Execute()
%>
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:50 #13
de krydser billeder af i checkboxe og sender dataen via POST Method i en form videre til den side hvor SQL-sætningen er...
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:50 #14
og checkbox value er = gbilledeid
Avatar billede softspot Forsker
11. december 2008 - 15:51 #15
Ooookay. Se det er jo det du skal skrive fra starten, så ville du ikke skulle bruge så meget tid på at poste frem og tilbage :-)

addpicture.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias) SELECT billede, gbilledeid, " & brugerid & ", '" & alias & "' FROM favgalleri WHERE brugerid = " & brugerid & " AND gbilledeid IN(" & checkvalue & ")"

Under antagelse af at brugerid er en integer (tal) og alias er en tekst i databasen).
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:54 #16
okay lige et spørgsmål til den sætninge du har der hehe

der hvor der står FROM favgalleri, hvordan kan jeg indsætte noget fra favgalleri når favgalleri jo er tomt eftersom det er i favgalleri jeg skal indsætte data?
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:56 #17
og der hvor du har skrevet SELECT billede, gbilledeid

hvor får SQL sætningen værdien af billede, gbilledeid fra?
Avatar billede dakar2004 Nybegynder
11. december 2008 - 15:57 #18
ved godt det måske er dumme spørgsmål, men man får jo kun svar ved at spørge...
Avatar billede dakar2004 Nybegynder
11. december 2008 - 16:13 #19
nu har jeg prøvet at køre den SQL-Sætning som du lige gav mig og den laver heller ikke fejl, men den tilføjer intet til favgalleri databasen, for mig at se ser det ud som om at den ikke får den data den skal have fra tabellen galleri_billede
Avatar billede dakar2004 Nybegynder
11. december 2008 - 16:22 #20
okay min SQL-Stræng ser nu således ud, men får afvide at der mangler en slutning på sætningen?

<%
checkvalue = Request.Form("checkbox")
brugerid = Session("sesbrugerid")
alias = Session("sesalias")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "<font color=""#00FF00"">Tilføjer Billeder...</font>" End If
set addpictures = Server.CreateObject("ADODB.Command")
addpictures.ActiveConnection = MM_eventz_STRING
addpictures.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias) SELECT billeder2, gbilledeid, " & brugerid & ", '" & alias "' FROM galleri_billede WHERE gbilledeid IN(" & checkvalue & ")"
addpictures.CommandType = 1
addpictures.CommandTimeout = 0
addpictures.Prepared = true
addpictures.Execute()
%>
Avatar billede dakar2004 Nybegynder
11. december 2008 - 16:43 #21
nå nu fik jeg det til at fungere, min sql-sætning kom til at således ud til sidst:
<%
checkvalue = Request.Form("checkbox")
brugerid = Session("sesbrugerid")
alias = Session("sesalias")
If Request.Form("checkbox") ="" Then Response.Redirect("e_galleri_event_billede2_add_fejl.asp") Else Response.Write "<font color=""#00FF00"">Tilføjer Billeder...</font>" End If
set addpictures = Server.CreateObject("ADODB.Command")
addpictures.ActiveConnection = MM_eventz_STRING
addpictures.CommandText = "INSERT INTO favgalleri (billede, gbilledeid, brugerid, alias) SELECT billeder2, gbilledeid, " & brugerid & ", '" & alias & "' FROM galleri_billede WHERE gbilledeid IN(" & checkvalue & ")"
addpictures.CommandType = 1
addpictures.CommandTimeout = 0
addpictures.Prepared = true
addpictures.Execute()
%>
Avatar billede dakar2004 Nybegynder
11. december 2008 - 16:43 #22
softspot du smider lige et svar ikke, så får du point...
Avatar billede softspot Forsker
11. december 2008 - 17:28 #23
Det var bare mig der ikke lige havde gennemskuet din datamodel, men lader til at du har fundet ud af hvad kilde og destinationstabellerne skal hedde, så det er jo super :-)
Avatar billede softspot Forsker
11. december 2008 - 17:29 #24
Det er i øvrigt lidt samme løsning du spurgte efter igår i dette spørgsmål: http://www.eksperten.dk/spm/855933
Avatar billede softspot Forsker
16. december 2008 - 16:28 #25
Tak for point :)
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