Avatar billede remo27 Nybegynder
12. juni 2005 - 11:50 Der er 18 kommentarer og
1 løsning

hjælp til at hendte brugernavn fra database

jeg har denne kode.

<!-- #include file="../databaseforbindelse.asp" -->
<%
id = Request.Form ("id")
Tabelnavn = "users"

If Request.ServerVariables("CONTENT_LENGTH") <> 0 Then ' Opdatering
sql="update Users set Username=""" & (request.form("Username")) & """, Pass=""" & (request.form("Pass")) & """ where id=" & request.form("id") 
'response.write sql
conn.execute(sql)
response.redirect "../default.asp?emne=admin"
Else
  Id = Request.QueryString ("id")
' ** Inserted by Jon Brohauge 2002/08/02
' ** Hvis der ikke er specificeret et id, så vis liste over alle nyheder sorteret efter dato, nyest først.
  If Id = 0 Then
' ** Vis nyhedsliste
  Set rs=Conn.Execute ("Select * from " & Tabelnavn & " WHERE  'Username'")
%>

<center>
<br>
<table cellspacing=0 border=0 cellspacing="0" cellpadding="5" width=320>
<tr>
  <td ><b>Brugernavn:</b></td>
  <td>&nbsp; </td>
</tr>
<%
  If not(rs.bof or rs.eof) Then
    while not(rs.eof)
%>
<tr>
  <td class="menutxt"><%=rs("Pass")%>&nbsp;</td>
  <td class="menutxt"><a href="default.asp?emne=admin&emne2=retbruger&id=<%=rs("id")%>">Ret</a>|&nbsp;<a href="admin/sletbruger.asp?id=<%=rs("id")%>">Slet</a>
  </td>
</tr>
<%
      rs.movenext
    wend
  Else
    Response.Write "Ingen nyheder at rette"
  End If
%>
</table>


<%
  Else
' ** Vis valgte nyhed
  Set rs=Conn.Execute ("Select * from " & Tabelnavn & " Where id=" & Id & "")
%>

<center>

<table cellspacing=0 border=0 cellspacing="0" cellpadding="5" width=320>
<Form Action=admin/retbruger.asp method="post">
<tr>
  <td colspan=2 height=20  width="320" class="green" align="center"><b>Ret/Slet Anonce bruger:</b>
  </td>
</tr>

<tr>
<td align=right width="310"><input type="text" name="Username" size="32" value="<%=rs("Username")%>"></td>
</tr>
<tr>
<td align=right width="310"><input type="text" name="Pass" size="32" value="<%=rs("Pass")%>"></td>
</tr>
<tr>
  <td colspan=2 width="310" align="right"><Input type="submit" Value="Ret"></td>
</tr>
<input type="hidden" name="id" value="<%=Id%>">
</form>
</table>

<%
  End If
End If
%>

som skal hendte brugernavn og password, som skal redigeres eller slettes.

men jeg får følgende fejl.

Fejltype:
ADODB.Recordset (0x800A0CC1)
Elementet kan ikke findes i den samling, der svarer til det anmodede navn eller ordenstal.
/web/nejst/admin/retbruger.asp, line 33


linie 33 hedder

  <td class="menutxt"><a href="default.asp?emne=admin&emne2=retbruger&id=<%=rs("id")%>">Ret</a>|&nbsp;<a href="admin/sletbruger.asp?id=<%=rs("id")%>">Slet</a>
Avatar billede michael_stim Ekspert
12. juni 2005 - 11:55 #1
Dette: Set rs=Conn.Execute ("Select * from " & Tabelnavn & " Where id=" & Id & "")
Skal vel väre:Set rs=Conn.Execute ("Select * from "' & Tabelnavn & '" Where id=" & Id & "")
Avatar billede michael_stim Ekspert
12. juni 2005 - 11:55 #2
Ups. glem min kommentar.
Avatar billede michael_stim Ekspert
12. juni 2005 - 11:59 #3
Set rs=Conn.Execute ("Select * from " & Tabelnavn & " WHERE  'Username'")
Den her der imod er lidt skum. WHERE username = HVAD???
Avatar billede remo27 Nybegynder
12. juni 2005 - 12:09 #4
jeg  får denne fejl, efter at sat din kode ind

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EE)
Tegnet ')' var ventet
/web/nejst/admin/retbruger.asp, line 17, column 37
Set rs=Conn.Execute ("Select * from "' & Tabelnavn & '" Where id=" & Id & "")
Avatar billede nielle Nybegynder
12. juni 2005 - 12:58 #5
Set rs=Conn.Execute ("Select * from '" & Tabelnavn & "' Where id=" & Id & "")
Avatar billede nielle Nybegynder
12. juni 2005 - 12:59 #6
... byttet om på rækkefølgen af dine "- og '-tegn.
Avatar billede busschou Praktikant
12. juni 2005 - 13:39 #7
der skal vel ikke ' omkring tabel navnet?
Set rs=Conn.Execute ("Select * from " & Tabelnavn & " Where id=" & Id)
Avatar billede nielle Nybegynder
12. juni 2005 - 13:42 #8
Hmmm, jeg må jo være træt så tidligt på morgenen. ;^)

Så bare at de var placeret galt, og at det var derfor compileren brokkede sik. Den nye fejl ville jo godt nok få databasen til at brokke sig i stedet.
Avatar billede busschou Praktikant
12. juni 2005 - 13:48 #9
tidlig om morgenen kl 13.. hehe ;o)
Avatar billede michael_stim Ekspert
12. juni 2005 - 14:17 #10
Derfor skrev jeg at han skulle glemme min kommentar ;o)
Avatar billede busschou Praktikant
12. juni 2005 - 14:50 #11
jeg læste heller ikke spørgsmålet , så kun svarene..
Nå men fejlen betyder jo at den ikke kan finde rs("id")
Da både din Username og Pass er med stort
Mon så ikke det skulle være rs("Id") ? tjek evt i din tabel
Avatar billede busschou Praktikant
12. juni 2005 - 14:53 #12
Det kan selvgølgelig også skyldes at du ikke giver et argument med som michael_stim påpeger 11:59:08
Jeg har ikke selv prøvet skrive sådan før
Set rs=Conn.Execute ("Select * from " & Tabelnavn & " WHERE  'Username'")
Men jeg kunne forestille mig at du får alle de rækker hvor Username == True, hvilket sikkert ikke forekommer, hvorfor dit resultset bliver tomt, hvorfor rs("id") så ikke findes
Avatar billede remo27 Nybegynder
12. juni 2005 - 17:46 #13
Hmmm, jeg får denne fejl nu

Fejltype:
Microsoft JET Database Engine (0x80040E14)
Der er en syntaksfejl i FROM-delsætningen.
/web/nejst/admin/retbruger.asp, line 17

efter at have brugt busschou ide se - 13:39:18
Avatar billede nielle Nybegynder
12. juni 2005 - 18:21 #14
Prøv at - som debug - udskrive din SQL til skærmen før at du udføre den:

SQL = "Select * from " & Tabelnavn & " Where id=" & Id
Response.Write SQL
Set rs=Conn.Execute (SQL)

Som regel betyder den slags fejlbeskeder at SQL'en indeholder noget andet end man forventede. Jeg gætter helt personligt på at din id-variabel simepltehm er tom i dette tilfælde.
Avatar billede busschou Praktikant
13. juni 2005 - 06:29 #15
Du skriver sådan her nu??
----
' ** Hvis der ikke er specificeret et id, så vis liste over alle nyheder sorteret efter dato, nyest først.
  If Id = 0 Then
' ** Vis nyhedsliste
  Set rs=Conn.Execute ("Select * from " & Tabelnavn & " Where id=" & Id)
-----
For det betyder jo at Id er sat , nemlig til 0
Men men, du skriver jo også at du ønsker alle nyheder sorteret efter dato!
Derfor vil jeg tro din sql skal være sådan her i stedet
---
Set rs=Conn.Execute ("Select * from " & Tabelnavn & " order by dato desc")
---
Såfremt dit felt indeholdende datoen hedder "dato" altså
Men derudover, ja så prøv skrive din sql ud som nielle foreslår hvis den stadig fejler
Avatar billede nielle Nybegynder
24. juni 2005 - 18:13 #16
Skal vi se at komme vidre her?
Avatar billede remo27 Nybegynder
24. juni 2005 - 18:31 #17
jeg lukker dette spørgsmål igen,
dem af jer som vil have point for at hjælpe kan i ikke lægge et svar.

jeg vil se om jeg ikke kan finde et færdigt købe/bytte/salg system, som kan slette indlæg og brugere efter fx. 30 dage
Avatar billede busschou Praktikant
25. juni 2005 - 00:16 #18
ok så lægger jeg et svar :o) Så må du jo bestemme hvor meget det er værd ;o)
Avatar billede nielle Nybegynder
26. juni 2005 - 20:11 #19
Jeg skal ikke have point - jeg ville nu også heller hjælpe løse problemet.
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