Hej
jag undrar om någon kan tipsa mig lite om hur man gör för att få till sån här kommentarsfunktion, ex: http://www.e24.se/samhallsekonomi/sverige/artikel_630339.e24
Jag kör med ASP, MySql och skulle vilja få in att man kan lägga in kommentarer efter t.ex. mina texter om slott som jag hämtar från en databas...
Någon som har en idé på hur jag skall gå tillväga?
Samtidigt måste det vara någon sorts koll för vissa yngre har en viss förmåga att skriva en massa strunt/perverst :OO
Kommentarsfunktion
16 svar · 726 visningar · startad av snowcat
Bygg som en gästbok, men med skillnaden att du kopplar artikelns id till kommentaren i "gästboken".
Ex på tabell
Kommentarer
id | artikelid | kommentar | namn | epost | godkand
Eftersom nu folk kan skriva fuffens och dumma kommentarer och så vidare så ser du till att du kan godkänna/ej godkänna kommentaren, och på så sätt kan du kontrollera innan dem syns "offentligt" om de skall få visas eller inte.
jo jag satt och funderade på det - jag har ju en sån i min gästbok, där måste jag godkänna först, dock är min gästboksfil så hemskt lång och krånglig så jag vet inte hur jag skall få till det... men det blir nog bäst att göra så.
I den databasen som jag har mina slott kan jag ju kanske lägga till de där - eller kan jag skapa en ny tabell? För rätt kommentars-id måste ju hamna på rätt slotts-id...?
Sen måste jag ju nästan få typ ett mail eller något så jag ser om någon gjort någon kommentar, för annars vet jag ju inte, då måste jag ju sitta och kolla i databasen hela tiden om någon skrivit något... eller tänker jag helt bortåt väggarna nu ?
snowcat skrev:
jo jag satt och funderade på det - jag har ju en sån i min gästbok, där måste jag godkänna först, dock är min gästboksfil så hemskt lång och krånglig så jag vet inte hur jag skall få till det... men det blir nog bäst att göra så.
I den databasen som jag har mina slott kan jag ju kanske lägga till de där - eller kan jag skapa en ny tabell? För rätt kommentars-id måste ju hamna på rätt slotts-id...?
Sen måste jag ju nästan få typ ett mail eller något så jag ser om någon gjort någon kommentar, för annars vet jag ju inte, då måste jag ju sitta och kolla i databasen hela tiden om någon skrivit något... eller tänker jag helt bortåt väggarna nu ?
* Rätt kommentars-id behöver inte hamna på rätt slotts-id, utan rätt slotts-id till rätt kommentar. Kort och gott så skulle en kopia av din gästboksfil med några modfikationer vara tillräckligt för att målet skall uppnås.
Hur pass bevandrad är du i ASP?
Om du inte själv kan göra det, så kan du säkert be någon här på forumet om hjälp. :)
nej inte så värst duktig på asp - det kan jag gott säga ;)
Men hur skall jag göra? skall jag göra en egen liten tabell för inläggen? och inte lägga dem i slottsdb:n?
Om vi säger att sidan med en artikel har adressen:
artiklar.asp?artID=1
Då använder du request.querystring("artID") i artikelid i SQLn där du sparar kommentarerna.
Sen på samma sida där du skiver ut artikeln hämtar du bara alla kommentarer med samma ID som artikeln.
Förstår du hur jag menar?
snowcat skrev:
nej inte så värst duktig på asp - det kan jag gott säga ;)
Men hur skall jag göra? skall jag göra en egen liten tabell för inläggen? och inte lägga dem i slottsdb:n?
Ja, skapa en egen tabell för inläggen (kommentarerna) i databasen där tabellen för slotten ligger. Ex på namn på tabellen: Kommentarer
Ex. tabell för slott
SLOTTID | INFO_OM_SLOTT | SKAPAD_AV | SKAPAD_DATUM
och den för kommentarer
KOMMERNTARID | SLOTTID | SKAPAD_AV | SKAPAD_DATUM | GODKAND
Givetvis är ju namnen frivillga.. sedan för att hänvisa till vilket slott som kommentaren gäller, så sparar man ned med ett script
slottid som man ex. hämtar via Request.QueryString .. och lägger det i en fält av typen "hidden", sen har du de andra fälten som du anser är nödvändiga, ex. en textarea för kommentarer, ett text-fält för namn etc.
sedan gör vi en postning till ex. spara_kommentar.asp, där spara funktionen finns.
Bara för att korta ned en lång historia med kod så att säga
Kom på att min gästbok går mot en accessdatabas och inte en mysql. Min slottsdb är dock en mysql. Är det någon skillnad mellan hur man lägger till data i en mysql via formulär än om man gör det via access?
Få inte dåndimpen nu men den här koden är min gästboksfil som alltså går mot en access..
försökte få in koden här men det blir bara en lång rad???
hej igen
är det någon som vet om det finns någon liten kurs i hur man lägger in värden från ett formulär till en mysql-db (med asp). Jag får inte till det här alls :(
vad är det för fel på den här:
<%
If Request.QueryString("add") = "yes" Then
Set Connect = server.createobject("ADODB.connection")
Connect.Open Session("Connection_String")
strSQL = "INSERT INTO kommentarer (id, namn, kommentar ) "
strSQL = strSQL & " VALUES('"& Request.Form("id") &"','"& Request.Form("namn") &"','"& Request.Form("kommentar") &"' "
strSQL = strSQL & ")"
Connect.Execute(strSQL)
RecSet.Close
Connect.Close
end if
%>
får felet
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[MySQL][ODBC 3.51 Driver][mysqld-5.0.51a-community-nt]Column count doesn't match value count at row 1
på rad 11 som den klagar på har jag
Connect.Execute(strSQL)
Skriv ut den färdiga sql-frågan med response.write istället för att exekvera den. Då är det hundrafjorton gånger lättare att se vad som orsakar felet.
mvh
jag tror jag har tagit mig vatten över huvudet.. vet inte ens var man sätter in
Response.Write
finns det någon som känner till någon enkel "kurs" hur man gör ett formulär med mysql?
snowcat skrev:
jag tror jag har tagit mig vatten över huvudet.. vet inte ens var man sätter in
Response.Writefinns det någon som känner till någon enkel "kurs" hur man gör ett formulär med mysql?
Ja det finns förmodligen hel uppsjö på tutorials.
Men för att skriva ut SQLn som @nders säger så ändrar du koden till följande så bör det räcka:
<%
If Request.QueryString("add") = "yes" Then
Set Connect = server.createobject("ADODB.connection")
Connect.Open Session("Connection_String")
strSQL = "INSERT INTO kommentarer (id, namn, kommentar ) "
strSQL = strSQL & " VALUES('"& Request.Form("id") &"','"& Request.Form("namn") &"','"& Request.Form("kommentar") &"' "
strSQL = strSQL & ")"
' för att skriva ut SQLfrågan.
Response.Write strSQL
Response.End
Connect.Execute(strSQL)
RecSet.Close
Connect.Close
end if
%>
ok - tack :-)
nu fick jag en sida där det står;
INSERT INTO kommentarer (id, namn, kommentar ) VALUES('','testar','testar om detta funkar' )
fast det blev inget i databasen ändå.
jag har alltså nedanför mina slott, t.ex. längst ned på
http://www.historiesajten.se/slottdetalj.asp?id=319
lagt in ett litet formulär (syns dock inte här, har det hemma lokalt)
med följande kod:
<form name="insertText" method="POST" action="addkommentar.asp?add=yes" onSubmit="return checkInput(this)">
<table class="vtext" WIDTH="430" BORDER="0" CELLSPACING="1" CELLPADDING="2">
<tr><td height="15"></td></tr>
<TR><TD class="rubrik" colspan="2">Skriv en kommentar</td></tr>
<tr><td colspan="2" height="20"></td></tr>
<TR><TD>Namn:</TD> </tr>
<tr><TD><INPUT TYPE="TEXT" NAME="namn" SIZE="30" MAXLENGTH="225"></TD></tr>
<TR><TD colspan="2" valign=bottom>Kommentar:</TD></TR>
<TR><TD colspan="2"><TEXTAREA NAME="kommentar" rows="3" cols="50"></textarea></TD></TR>
<TR><TD><INPUT TYPE=HIDDEN NAME="ok" value=0></td></tr>
<TR><TD><INPUT TYPE=HIDDEN NAME="svar"></td></tr>
<TR><TD><INPUT TYPE=HIDDEN NAME="slottid"></td></tr>
<tr><td width="300" align="left" colspan="2"><input type="Submit" value="Skicka" onClick="alert('Tack för meddelandet, på grund av spam måste jag dock godkänna inlägget först - mvh Nina')">
</table>
</form>
Hur ser tabellen ut som kommentarerna skall sparas i?
ID, kommentar, namn, slottid, datum, tid, ok, svar
jag lade precis till de andra (slottid, datum, tid, ok, svar)
men eftersom den första lilla formuläret inte funkar så...
jag skulle ju få med det där slottidet också som t.ex. 319
(http://www.historiesajten.se/slottdetalj.asp?id=319)
men om jag gör en kopia av min gästboksfil och gör en ny accessdatabas... kan jag då på något sätt kunna få med slottsid:et som kommer från en mysql-databas?
För jag har suttit hela dagen med det här nu och jag får inte till det. Den vill ju inte lägga in nya poster från formuläret till mysql.
nu har jag:
<form name="insertText" method="POST" action="addkommentar.asp?add=yes">
Skriv en kommentar
<INPUT TYPE=HIDDEN NAME="ID">
Namn:
<INPUT TYPE="TEXT" NAME="namn" SIZE="30" MAXLENGTH="225">
Kommentar:
<TEXTAREA NAME="kommentar" rows="3" cols="50"></textarea>
<INPUT TYPE=HIDDEN NAME="ok" value=0>
<INPUT TYPE=HIDDEN NAME="svar">
<INPUT TYPE=HIDDEN NAME="slottid">
<input type="Submit" value="Skicka" onClick="alert('Tack för meddelandet, på grund av spam måste jag dock godkänna inlägget först - mvh Nina')">
</form>
och den andra filen (addkommentar.asp)
<% If Request.QueryString("add") = "yes" Then
Set Connect = server.createobject("ADODB.connection")
Connect.Open Session("Connection_String")
id = request.Form("id")
namn = request.Form("namn")
kommentar = request.Form("kommentar")
ok = request.Form("ok")
svar = request.Form("svar")
slottid = request.Form("slottid")
strSQL = "INSERT INTO kommentarer (id,namn,kommentar,ok,svar,slottid) VALUES('"& Request.Form("id") &"','"& Request.Form("namn") &"','"& Request.Form("kommentar") &"','"& Request.Form("ok") &"','"& Request.Form("svar") &"','"& Request.Form("slottid") &"')"
' för att skriva ut SQLfrågan.
Response.Write strSQL
Response.End
Connect.Close
end if
%>
och skriver jag in något i forumläret får jag en sida där det står:
INSERT INTO kommentarer (id,namn,kommentar,ok,svar,slottid) VALUES('','saba','min söta katt','0','','')
Skickat PM.