/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Minste id fra db
Fra : spintail


Dato : 25-04-06 05:44

Hej
Jeg er næsten færdig med min side som er til en klub hvor man fra sin
personlige profil kan tilmelde sig div events. Jeg har lavet det sådan
man som administrator bestemmer antal tilmeldte for hver event resten
kommer på venteliste. Problemet opstår når folk afmelder sig skal
jeg jo sætte første på ventelisten ind.

Når man er tilmeldt er status=1
Når man er på venteliste er status=2

Jeg prøver med:

'Afmelder den som gør det'
Id = Request.QueryString("id")
SQL = "DELETE * from tur where id ="&ID
conn.Execute(SQL)
'ændre status hvor status=2 men tage det minste id'
SQL2 = "Update tur set status=1 where status =2 and id in (select
min(id) from tur)"
conn.Execute(SQL2)
Response.Redirect ("../logger.asp")
Dette giver ingen fejl men sletter godt nok.

Derimod hvis jeg siger:

'Afmelder den som gør det'
Id = Request.QueryString("id")
SQL = "DELETE * from tur where id ="&ID
conn.Execute(SQL)
'ændre status hvor status=2 men tage det minste id'
SQL2 = "Update tur set status=1 where status =2"
conn.Execute(SQL2)
Response.Redirect ("../logger.asp")
Dette sletter men ændre ALLE status til 1, så jeg mangler at
fortælle den det skal være minste id som den skal ændre.


Nogen som kan se hvad jeg gør galt?

Allan


 
 
Jens Gyldenkærne Cla~ (25-04-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 25-04-06 08:54

spintail skrev:

> 'Afmelder den som gør det'
> Id = Request.QueryString("id")
> SQL = "DELETE * from tur where id ="&ID
> conn.Execute(SQL)
> 'ændre status hvor status=2 men tage det minste id'
> SQL2 = "Update tur set status=1 where status =2 and id in
> (select min(id) from tur)"

Du udvælger min(id) fra samtlige poster - også dem der allerede har
status=1. Prøv i stedet med:

   UPDATE tur
   SET status = 1
   WHERE id IN
       ( SELECT MIN(id)
       FROM tur
       WHERE status = 2 )
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

spintail (25-04-2006)
Kommentar
Fra : spintail


Dato : 25-04-06 14:14

Jens Gyldenkærne Clausen skrev:

>Du udvælger min(id) fra samtlige poster - også dem der allerede har
>status=1. Prøv i stedet med:

>UPDATE tur
>SET status = 1
> WHERE id IN
>( SELECT MIN(id)
> FROM tur
> WHERE status = 2 )


Tak for det Jens det var lige det jeg skulle bruge, kunne godt se min
fejl da jeg så dit. Mange tak

MvH
Allan


Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408799
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste