Avatar billede webbygger Nybegynder
22. november 2005 - 22:30 Der er 8 kommentarer og
1 løsning

hjælp til endnu en SQL sætning!

Jeg skal ha brygget en SQL sætning sammen, som skal sende en forespørgelse på, om medlemmet har stemt på billedet

eks.

<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("foto.mdb")

Set rs = Conn.Execute ("SELECT kategori FROM kommen WHERE MEMBER_ID = " & Session("MEMBER"))
if rs.EOF then

%>





<form action="vis.asp?mode=new&amp;rid=<%=request.querystring("rid")%>&amp;t=<%=request.querystring("t")%>" method="post" class="votetekst" onSubmit ="return submitForm();">
  <b>Point:</b>&nbsp;
  <select name="vote">
    <option value="">-</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
  </select>
  <p><b></b>&nbsp;&nbsp;
    <input name='navn' type='hidden' value="<%=Session("MEMBER")%>" size='25'>
    <br>
    <br>
   
    <%
    else
  Response.write "Du har stemt på det billedet!"
end if

%>

men \kategori\ skal jo nok spefikcere mere præcis, ala request.querystring("id"), men jeg ved ikke lige hvordan????
Avatar billede henrik242 Nybegynder
22. november 2005 - 23:38 #1
er det ikke noget a la:
"select count(*) from kommen where MEMBER_ID = "&Session("MEMBER")&" AND BilledID = "&request("BilledID")

du søger?

Du behøver jo iøvrigt ikke sende session-ID'et med fra den ene form til den anden - det er jo netop én af pointerne ved sessions at de kan indeholde variabler på tværs af http-forespørgsler.
Avatar billede webbygger Nybegynder
23. november 2005 - 19:00 #2
Hej Henrik242

Jeg har prøvet at tilpas din SQL sætning til \ ("select count(*) from kommen where MEMBER_ID = "&Session("MEMBER")&" AND kategori = "&request.querystring("rid"))
\

Men jeg får denne fejl
Microsoft OLE DB Provider for ODBC Drivers error '80040e10'

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/upload/vote1.asp, line 32
Avatar billede henrik242 Nybegynder
23. november 2005 - 22:51 #3
Check lige om du har skrevet de rigtige navne på dine kolonner (altså "MEMBER_ID" og "kategori").

http://support.microsoft.com/default.aspx?scid=kb;en-us;216425
Avatar billede webbygger Nybegynder
24. november 2005 - 17:33 #4
Kolonner er gode nok, men jeg havde skrevet en request.querystring....den rigtig burde være &request.querystring("id"),men jeg for stadig en fejl melding:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'MEMBER_ID = admin AND kategori ='.

/upload/vote1.asp, line 32

Gad vide hvor '. kommer fra ?????
Avatar billede henrik242 Nybegynder
25. november 2005 - 01:04 #5
Det er jo altid en god ide at udskrive sit SQL udtryk før man kører det.
Lav det i en variabel
SQL = "SELECT ..... "
og skriv det ud
response.write(SQL)

Det tyder på at din variabel med kategorien er tom. (' indikerer slutningen af den streng der starter med 'MEMBER_ID ...' i fejlbeskeden)

Men altså... Meningen er vel at en bruger får mulighed på at stemme på et billede, hvis han ikke allerede har stemt på det. Dette billede har vel et ID, men du kredser omkring en kolonne du kalder kategori. Er det bare mig der misforstår noget? Skal han slet ikke have mulighed for at stemme på to billeder inden for samme kategori?
Avatar billede webbygger Nybegynder
25. november 2005 - 15:01 #6
Henrik -> du har ikke misforstået noget, jeg har bare været så klodset at kalde billdet_ID for kategori og det er jo noget misvisende for udestående!!!
Jeg har hermed rettet kolonne navnet til "pic-id".
Du har ret i, at en bruger skal ha lov til at stemme på et billede én gang!!!

Jeg kan stadig ikke få det til, at kører.......

Siden kan du se her http://www.web-byggeren.dk/upload/kategorier.asp

brugernavn: exp
password: exp

Script ser nu sådan ud:


<%
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath ("foto.mdb")
Sql = "select count(*) from kommen where MEMBER_ID = "&Session("MEMBER")&" AND pic_id = "&request.querystring("id")
Set Rs = Conn.Execute(Sql)

if rs.EOF then

%>





<form action="vis.asp?mode=new&amp;rid=<%=request.querystring("rid")%>&amp;t=<%=request.querystring("t")%>" method="post" class="votetekst" onSubmit ="return submitForm();">
  <b>Point:</b>&nbsp;
  <select name="vote">
    <option value="">-</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
  </select>
  <p><b></b>&nbsp;&nbsp;
    <input name='navn' type='hidden' value="<%=Session("MEMBER")%>" size='25'>
    <br>
    <br>
   
    <%
    else
  Response.write "Du har allerede stemt på dette billede.  Du kan ikke stemme på det igen.!"
end if

%>
Avatar billede henrik242 Nybegynder
26. november 2005 - 22:12 #7
Nu kan jeg se du bruger Acces, og det jeg slet ingen erfaring med, men prøv at se hvordan jeg plejer at gøre - du skal sikkert bare ændre "ADODB.Recordset" til noget der virker med Access:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open Application("MinConnectionString")

SQL = "SELECT whatever from wherever"   
set rsWhat = Server.CreateObject("ADODB.Recordset")
rsWhat.Open SQL, Conn

if rsWhat.eof then
  'skriv formular
else
  '"Du har allerede stemt...
end if
Avatar billede henrik242 Nybegynder
01. december 2005 - 16:39 #8
Ku du bruge mit svar?
Avatar billede webbygger Nybegynder
02. december 2005 - 21:20 #9
Hej Henrik!

Undskyld mit manglende response, men jeg syntes ikke jeg kunne bruge dine svar til noget - desværre!!!
Jeg fik løst problemet i dette spørgsmål http://www.eksperten.dk/spm/667669
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