Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: ASP > Laatste 10 nieuwe leden  (gelezen 5781 keer)

0 leden en 1 gast bekijken dit topic.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
ASP > Laatste 10 nieuwe leden
« Gepost op: 20 oktober 2008, 14:58:43 »
Heej!

Dus ik heb een website waar gebruikers hun kunnen registreren enzo.
Nu zou ik graag een nieuwe pagina maken waar je op de website kan zien wie de laatste 10 nieuwe gebruikers zijn.

Wie kan mij hiermee helpen?

Groetjes, Gerrie
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #1 Gepost op: 21 oktober 2008, 01:41:32 »
Ik ga er even vanuit dat je ASP en MySQL gebruikt...

Als je in onderstaande code wat gegevens aanpast (databasenaam, gebruikersnaam, paswoord, tabelnaam en veldnamen) dan zal de pagina precies doen wat jij vroeg.
Uiteraard dien je ook nog wat opmaak en style toe te voegen om er een mooie pagina van te maken die past bij jou website
<html>
  <body>
<%
   Dim objConn, objRS, i
   Set objRS=server.createobject("ADODB.Recordset")
   Set objCN=server.createobject("ADODB.Connection")
   objCN.ConnectionString="DRIVER={MySQL};SERVER=localhost;DATABASE=******;UID=******;PWD=******;"
   objCN.Open
   objRS.Open "SELECT * FROM tblGebruikers ORDER BY regdat DESC LIMIT 0,10;", objCN, 3,3
   while not objRS.eof
      response.write(objRS("naam")&" - "&objRS("regdat")&"<br>")
      objRS.movenext
   wend
   objRS.Close
   objCN.Close
   Set objRS = Nothing
   Set objCN = Nothing
%>
  </body>
</html>
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #2 Gepost op: 21 oktober 2008, 06:18:45 »
Mij database noemt db_Gegevens
Ik heb dus nu volgende code staan:

<%
m_Website  = request.form("Website")
m_Nickname = request.form("Nickname")

Set Conn = Server.CreateObject ("ADODB.Connection")
Set rs1  = Server.CreateObject ("ADODB.Recordset")
 
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.ConnectionString = "Data Source=" & Server.MapPath ( "db_Gegevens.mdb" )
conn.open
 
objRS.Open "SELECT * FROM db_Gegevens ORDER BY regdat DESC LIMIT"
0,10;", objCN, 3,3
   while not objRS.eof
   
response.write(objRS("nicknaam")&" m_nickname
"&objRS("regdat")&"<br>")
 
objRS.movenext
wend
 
 objRS.Close
   objCN.Close
   Set objRS =
Nothing
   Set objCN = Nothing
%>

Ik ben nog maar 3 dagen bezig met ASP dus heb nog maar wat basis.
Moet ik dan ook in mijn database een tabel aanmaken wanneer de gebruiker zich heeft geregistreerd ofzo? Want anders kan die dat toch nooit vinden!
Ik heb in men db ( Naam - Voornaam - Email - Website - Nickname - paswoord - Credits )

Wat moet ik nu nog aan de code vervangen?
Als ik deze nu uitvoer verteld hij mij:

Instructie wordt verwacht
op de lijn van  0,10;", objCN, 3,3

Alvast bedankt, Gerrie
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Firebirdy

  • Ambassadeur
  • *****
  • Berichten: 2.408
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #3 Gepost op: 21 oktober 2008, 07:32:39 »
De 0, 10 maakt nog deel uit van je query (LIMIT 0, 10 = beperk tot de eerste 10 resultaten). Het mag dus niet op een volgende lijn staan.

Onderstaande moet op één lijn:
objRS.Open "SELECT * FROM db_Gegevens ORDER BY regdat DESC LIMIT 0,10", objCN, 3, 3

Misschien staan er nog fouten in. Vervang
Set Conn = Server.CreateObject("ADODB.Connection")
Set rs1  = Server.CreateObject("ADODB.Recordset")
door
Dim objConn, objRS
   Set objRS=server.createobject("ADODB.Recordset")
   Set objCN=server.createobject("ADODB.Connection")
Je naamgeving moet consistent zijn, later gebruik je immers objRS en objCN.

Uiteraard moet je alle data die je wil opvragen ook voorzien in je database. Een eenmalig iets als registratiedatum per gebruiker kan je maar beter opnemen in je al bestaande 'gebruikers'tabel db_Gegevens, door er een datumveld aan toe te voegen en de datum mee in te vullen bij aanmaak van het record. Ik zou ook aanraden om je tabel te hernoemen naar vb Gebruiker, dat wordt later duidelijker als je nog tabellen nodig hebt.

Succes :).

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #4 Gepost op: 21 oktober 2008, 13:59:30 »
Ik merk dat je werkt met ACCESS ipv MySQL.
Ik heb de code dan ook een beetje aangepast.

Eerst nog een paar opmerkingen:
  • Je geeft wel de naam van de database (db_Gegevens.mdb), maar vernoemt niet expliciet  de naam van de tabel. Uit jou code heb ik afgeleid dat die db_Gegevens noemt. Klopt dat? Als dat zo is, dan kan je die eigenlijk beter tbl_Gegevens noemen om aan te geven dat het om een tabel in een database gaat en niet om een database zelf.
  • Je geeft de velden van je tabel, maar ik zie daar geen veld voor de registratiedatum bij. Dat zal je nog moeten toevoegen en er bij registratie voor zorgen dat dit correct ingevuld wordt. In mijn voorbeeld noemt dat veld 'regdat'
  • In de 2 eerste regels van jou code vraag je de waarde van 2 formuliervelden op, maar je doet er verder niets mee. Ik heb ze in mijn voorbeeld maar weggelaten, ook al omdat ik niet goed inzie wat je ermee zou kunnen doen...
  • En tenslotte: selecteer de voorbeeldcode, en gebruik dan gewoon 'kopieren' en 'plakken'. Op die manier heb je geen last van afgebroken regels die verder gaan op een nieuwe regel waar dat niet mag.

En dan hier de aangepaste code, die ik voor de gelegenheid ook wat beter gecommentarieerd heb  8)

<% 
  'maak een Connetion-object
  Set cn=server.createobject("ADODB.Connection")
 
  'open de database in het connetion-object
  cn.open "PROVIDER=MICROSOFT.JET.OLEDB.4.0;DATA SOURCE="&server.mappath("db_Gegevens.mdb")
 
  'maak een recordset-object
  Set rs=server.createobject("ADODB.Recordset")
 
  'open een SQL-query in het recordset-object
  'de query zal de tabel (db_Gegevens) aflopend sorteren op registratiedatum (regdat),
  'daarvan de 10 eerste records selecteren, en daarvan enkel de velden Nickname en regdat ophalen
  rs.open "SELECT Nickname, regdat FROM db_Gegevens ORDER BY regdat DESC LIMIT 0,10;", cn, 3,3
 
  'zolang er records gevonden worden .....
  while not rs.eof
 
    'toon de velden Nickname en regdat op de pagina
    response.write(rs("Nickname")&" - "&rs("regdat")&"<br>")
   
    'ga naar de volgende record
    rs.movenext
   
  '..... doe bovenstaande regels
  wend
 
  'sluit de recordset
  rs.close
 
  'vernietig het recordset-object
  Set rs=Nothing
 
  'sluit de database
  cn.close
 
  'vernietig het connection-object
  Set cn=Nothing
%>

Ik hoop dat het hiermee gaat lukken, en anders laat je het maar weten :)
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #5 Gepost op: 21 oktober 2008, 17:46:53 »
Bedankt voor de nieuwe code!

Momenteel zit ik met volgend probleem
------------------------------------------------------------
Runtimefout Microsoft VBScript (0x800A01A8)
Object vereist: ''
/Ikwilmeerbezoekers/Top10.asp, line 170
------------------------------------------------------------

Op mijn lijn 170 staat

rs.open "SELECT Nickname, regdat FROM * db_Gegevens ORDER BY regdat DESC LIMIT 0,10;", cn, 3,3
Staat op 1 lijn  ;)

Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #6 Gepost op: 21 oktober 2008, 19:08:28 »
In die regel staat inderdaad nog een fout  :-[
MS-ACCESS kent namelijk geen LIMIT-clausule maar wel TOP n.

De juiste regel moet worden:
rs.open "SELECT TOP 10 Nickname, regdat FROM db_Gegevens ORDER BY regdat DESC", cn, 3,3
Ik vind het wel raar dat je daardoor de melding "Object vereist" krijgt, dus misschien zit er nog wel iets anders fout  ???
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #7 Gepost op: 21 oktober 2008, 19:19:19 »
Okej, het werkt  ;D
PRACHTIG!

En als ik nu nog een website wil tonen naast hun nickname ..
Hoe moet ik dat dan toevoegen? Staat ook in database

Bedankt voor u tijd om mij te helpen =)

Groetjes, Gerrie
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #8 Gepost op: 21 oktober 2008, 19:26:27 »
Welke website? Ik bedoel: vanwaar zou je de URL voor die site moeten komen?

Als je de persoonlijke website van elk lid bedoelt, dan kan je het makkelijkst ook weer een veld met naam Homepage of zo toevoegen in de tabel. Bij registratie ervoor zorgen dat de juiste URL's erin staan.
De recordset wordt dan:
rs.open "SELECT TOP 10 Nickname, regdat, Homepage FROM db_Gegevens ORDER BY regdat DESC", cn, 3,3en de regel die de gegevens op de pagina zet wordt dan:
response.write(rs("Nickname")&" - "&rs("regdat")&" - "&rs("Homepage")&"<br>")
Met vriendelijke groet,
Janko.

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #9 Gepost op: 21 oktober 2008, 19:29:09 »
Ooooops.... Ik zie juist dat je dat veld al hebt :-[
Wel... dan kan je de aanpassingen doen zoas hierboven beschreven...
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #10 Gepost op: 22 oktober 2008, 13:20:41 »
hehe!

Maar nu zie ik de link idd op de website maar ik kan er niet op klikken  :(

Nu heb ik nog een foutje, hoe kan ik er voor zorgen dat de datum wanneer en gebruiker zich heeft aangemeld in de database komt?

Hoe los ik deze problemen dan op?

Greetz, Gerrie
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #11 Gepost op: 22 oktober 2008, 15:26:28 »
Om er een linkje van te maken moet je er nog een <a href='xxx'> voorzetten (waarbij xxx vervangen moet worden door de echte URL), en een </a> achter.
Zo dus:
  response.write(rs("Nickname")&" - "&rs("regdat")&" - <a href='"&rs("Website")&"'>"&rs("Website")&"</a><br>")(Noemde dat veld nu 'Website' of 'Homepage' ? weet niet meer, maar dat kan je zelf wel aanpassen he  ;))

Die datum mee opslaan is absoluut niet moeilijk, maar wel lastig om uit te leggen  :-\
Een poging:
Je moet wat gaan wijzigen in de pagina die de registratie gaat opslaan in de database; logisch hé.
Je zal daar ergen een regel zien staan waar onderandere "INSERT INTO db_Gegevens ......" instaat.
De zal je moeten aanpassen zodanig dat je gelijk de actuele datum in het veld "regdat" opslaat.
Als het je niet zelf lukt, post dan even de betreffende regel (samen met een paar regels ervoor en erachter), en dan doe ik het wel  ;)
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #12 Gepost op: 22 oktober 2008, 17:48:15 »
Dacht zo iets

rsl("regdat") = m_regdat "INSERT INTO db_Gegevens & VALUES datum = now()"
Maar dat werkt niet  ??? Staat op 1 lijn
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

Offline Janko

  • Lid
  • *
  • Berichten: 45
  • Geslacht: Man
Re: ASP > Laatste 10 nieuwe leden
« Reactie #13 Gepost op: 22 oktober 2008, 17:57:58 »
laat de paar regels net voor en net na "INSERT INTO" hier eens zien... ;)
Met vriendelijke groet,
Janko.

Offline Gerrie.vanrossum

  • Lid
  • *
  • Berichten: 25
  • Geslacht: Man
  • Van Rossum G.
Re: ASP > Laatste 10 nieuwe leden
« Reactie #14 Gepost op: 22 oktober 2008, 18:16:39 »
<%
m_Naam     = request.form("Naam")
m_voornaam = request.form("Voornaam")
m_Email    = request.form("Email")
m_Website  = request.form("Website")
m_Nickname = request.form("Nickname")
m_Paswoord = request.form("Paswoord")
m_regdat = request.form("regdat")
m_credits = request.form("credits")
'
Set Conn = Server.CreateObject ("ADODB.Connection")
Set rs1  = Server.CreateObject ("ADODB.Recordset")
'
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.ConnectionString = "Data Source=" & Server.MapPath ( "db_Gegevens.mdb" )
conn.open

Strsql= "select * from db_Gegevens"
rs1.open Strsql,conn,adOpenstatic,adLockOptimistic,adCmdText

rs1.AddNew
rs1("Naam") = m_Naam
rs1("Voornaam") = m_Voornaam
rs1("Email") = m_Email
rs1 ("Website") = m_Website
rs1("Nickname")  = m_Nickname
rs1("Paswoord") = m_Paswoord
rs1 ("credits") = m_credits = 10
rs1("regdat") = m_regdat "INSERT INTO db_Gegevens & VALUES datum = now()"

rs1.Update
 response.redirect("Juistegegevens.asp")

conn.close
set conn=nothing
%>
Standaard emailprogramma: Outlook Express
Standaard Operating System: Windows XP SP2
Standaard Browser:Internet Explorer 6

 


www.combell.com