24. november 2003 - 17:26Der er
18 kommentarer og 1 løsning
slette fra flere tabeller
jeg et script hvor brugeren kan slette billeder som er blevet uploadet til serveren. derudover har jeg en tabel (som hedder billeder) i min db som holder styr på billedernes placering, og tilføjer et unikt id til hver.
hvordan kan jeg tjekke om et billede som en bruger er ved at slette findes i ex min nyhedstabel, og hvis det gør slette det derfra også (min nyhedstabel har et felt "billede" der indeholder billedets id)
SQL = "Delete * From billeder Where ID = "&ID&"" MyConn.Execute(SQL)
også et eller andet til at tjekke om ID'et findes i nyhedstabellen
...ved ik om det er til at forstå, men ellers må i bare spørge
Jeg har prøvet flg, men den opdatere ikke i min tilsalg tabel
SQL = "Delete * From billeder Where ID = "&ID&"" MyConn.Execute(SQL)
strPic = ""
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT billede FROM tilsalg where ID ="&ID rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = "&ID MyConn.Execute(SQL) End If
I den ene SQL sætninger bruges Where ID="&ID og i den anden bruges Where billede = "&ID Det skal nok være samme kolonne begge steder. Hvis det er ID så ret denne linje:
SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = "&ID
til: SQL = "Update tilsalg Set billede = '"&strPic&"' Where ID = "&ID
Hvis du bruger Where billede = '"&ID&"'" så vil den overskrive hvor billede = ID'et og billede er sikket enten tom eller lig noget med /images/imga64354.jpg hvorimod ID = ID'et er den kolonne hvor billedet skal ind ;)
arh ok så det som du skal havde ind i tilsalg er billede ID'et på et billede.
Så skal den som SELECT de poster i tilsag hvade ændre ID=ID til billede=ID
strSQL = "SELECT billede FROM tilsalg where Billede='"&ID&"'" rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) End If rs.Close
men jeg har 3-4 tabeller som jeg skal tjekke igennem...skal man gentage den kode hver eneste gang, eller er der en "genvej" istedet for 4x
Set rs = Server.CreateObject("ADODB.RecordSet") strSQL = "SELECT billede FROM tilsalg where Billede='"&ID&"'" rs.Open strSQL, MyConn, 1 if not rs.EOF then SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) End If rs.Close Set rs = Nothing
Du er nød til at "lave" koden 3-4 gange. Man kan ikke gøre det på en gang.
Dog kan du undvære den del som tjekker om billedet findes i tilsalg tabellen men bare lave Update SQL'en da den ikke vil melde fejl hvis den ikke opdater nogle kolonne:
Så kan du lave det som dette:
SQL = "Update tilsalg Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) SQL = "Update XXXX Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL) SQL = "Update YYYY Set billede = '"&strPic&"' Where billede = '"&ID&"'" MyConn.Execute(SQL)
i øvrigt har jeg lige testet det uden tjekket, og hvis jeg ikke bruger tjekket får jeg flg fejl: ODBC driver does not support the requested properties
men det kan være lige meget...jeg bruger det bare hver gang så
Synes godt om
Ny brugerNybegynder
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.