Sistema di valutazione articolo

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Salve a tutti vorrei sapere se esiste un modo per inserire nel mio sito un sistema di valutazione con voto da 1 a 10 per i miei articoli, riportandone la media. Il mio sito è in asp ed utilizzo un database access. Ho provato diverse soluzioni come rating star ma non vanno bene al mio caso visto che sono da 1 a 5 stelle. Mi andrebbe bene anche una semplice finestrella (form) che riporti i 10 numeri.
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Ciao...credo che sia più semplice fare un insiremento in una tabbella...tipo id_art-voto..poi li leggi e fai media aritmentica...o struttiri in modo da leggere i più votati per numero o media :p
Cercare di modificare qualcosa di già fatto o da studiare prima di adattare, è sicuramente meno semplice ed impieghi più tempo.
facce sapè...e se possiamo, siamo qui.
:byebye::byebye:
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Per farvi capire meglio io ho questa pagina:

http://www.retrogaminghistory.com/articolo.asp?id=760

Vorrei che sotto la Valutazione del redattore ci fosse anche un sistema semplice per votare (da 1 a 10) e il voto del lettore, ovviamente dovrebbe essere la media di tutti i voti per il gioco recensito. Il mio problema è che non riesco a fare la media, non sono ancora molto pratico in ASP. Aiutatemiii :)
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Perfetto Francesco...:D:D:D
era abbastanza chiaro quello che intendevi.
Permettimi una piccola premessa:
Lo spirito del forum è quello di aiutare o dare qualche consiglio là dove ci siano difficoltà... hai preso qualcosa di già bello e fatto? (per carità senza nessuna critica) e dovresti modificarlo?...ma non puoi chiedere di farti fare il lavoro...:D:D:D e non che sia complicatissimo ma richiede un minimo di conoscenza ASP e DB (nel tuo caso Access)
In fondo alla pagina hai un inserici commento...l'hai scritto tu o era già fatto? potresti integrare il modulo con un elenco/menu per i voti

La media in ASP è semplice,
dichiari :
a = 1
b = 2
c = (a + b) /2
nel tuo caso valori dinamici ma la logica è la stessa.
e non credo che già non sia :D
Quindi le tue diffocoltà dove nascono? Nell'inserimento, nella lettura db o nella media?
:byebye::byebye:
 
Ultima modifica:

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ti ringrazio per la risposta Majinbu, vorrei però farti capire che io ho preso tutto il codice del sito in gestione, io sono un esperto grafico non me ne intendo molto di codice quindi sto imparando qualcosina da diverse guide in rete, cose comunque già belle preparate che bisogna solo adattarle. Mi sono rivolto a voi perchè già in altri casi mi avete aiutato. Spero che mi aiuterete anche stavolta, anche indirettamente con una guida nel sito, confido in voi :fonzie:
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ho creato questo semplice form dove con rs(id) mi chiamo l'id dell'articolo poi il voto e mando tutto ad una pagina che inserisce i dati nel database:

<form method="post" action="process_form_vote.asp">
<input type="hidden" name="id_articolo" value="<%=rs("id")%>">
<SELECT size=1 cols=4 name="voto">
<OPTION selected Value=nessuna>
<OPTION value=1> 1
<OPTION value=2> 2
<OPTION Value=3> 3
<OPTION value=4> 4
<OPTION value=5> 5
<OPTION Value=6> 6
<OPTION value=7> 7
<OPTION value=8> 8
<OPTION Value=9> 9
<OPTION Value=10> 10
</select>
<input type="submit" value="Vota">
</form>

Questa è la pagina process_form_vote.asp:

<%
strConn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open strConn

conn.Execute "INSERT INTO voti_utente (id_articolo, voto) VALUES (" & _
"'" & Replace(Request.Form("id_articolo"), "'", "''") & "', " & _
"'" & Replace(Request.Form("voto"), "'", "''") & "', " & _
Response.Redirect ("http://www.retrogaminghistory.com/")
%>

Ora però purtroppo non sono riuscito a combinare nulla perchè nel database non viene inserito nulla, e poi non so come fare il Response.Redirect alla pagina articolo... Majinbu puoi aiutarmi?
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Ciao francesco...prova cosi...

Codice:
<% 
If  Request.Form("voto") = " " then
Response.Redirect "pagina_precedente.asp"
end if
%> ' per id_art non serve visto che è hidden
<%
art = Request.Form("id_articolo")
voto = Request.Form("voto")

connessione = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connessione
sql = "INSERT INTO voti_utente (id_articolo, voto) VALUES ('"& art &"', '"& voto &"')"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
rs.Close
set rs = Nothing
conn.Close
set conn = Nothing

Response.Redirect ("http://www.retrogaminghistory.com/pagina_articolo.asp?id="& art )
%>

dovrebbe bastare...
PS.visto l'orario del post capisco la tua apprensione :), ma a volte dopo un buon riposo :dormo::dormo: vedi le cose più chiare e prima di postare la stessa domanda su diversi forum...forse e meglio aspettare un pochino e sentire prima chi ti a una mano...(mi riferisco a Optime che sicuramente ti posterà soluzione simile...e tu magari hai già risolto...quindi gli fai perdere tempo:eek::eek:)
:byebye::byebye:
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ho modificato la pagina process_form_vote.asp così:

<%
If Request.Form("voto") = " " then
Response.Redirect "pagina_precedente.asp"
end if
%>
<%
art = Request.Form("id_articolo")
voto = Request.Form("voto")

connessione = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connessione
sql = "INSERT INTO voti_utente (id_articolo, voto) VALUES ('"& art &"', '"& voto &"')"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

Response.Redirect ("http://www.retrogaminghistory.com/articolo.asp?id="& art )
%>

Ora mi inserisce i dati nel database... però ora non so come visualizzare la media del voto nella pagina dell'articolo, ho provato così:

<%
Set RSv = Server.CreateObject("ADODB.Recordset")
RSv.ActiveConnection = con
sqlString = "SELECT AVG(Voto) AS MediaUtente FROM voti_utente WHERE Id_Articolo=" & id
RSv.open sqlString
%>

<td align="center"><p><%=rsv("voto)")%></p></td>

però mi da un errore:

ADODB.Recordset error '800a0cc1'

Item cannot be found in the collection corresponding to the requested name or ordinal.

/articolo5.asp, line 152
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Ho risolto così:

<td align="center"><p><%=rsv("mediautente)")%></p></td> (grazie optime :))

ora vorrei sapere se è possibile fare in modo che un utente possa votare una volta sola un articolo? nel database ho id_utente e data ma non so come sfruttarli.
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
No il sito è senza login, cmq ho provato così:

<%
If Request.Form("voto") = " " then
Response.Redirect "pagina_precedente.asp"
end if
%>
<%
art = Request.Form("id_articolo")
voto = Request.Form("voto")
ip = Request.ServerVariables("REMOTE_ADDR")

connessione = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connessione
sql = "INSERT INTO voti_utente (id_articolo, voto, id_utente) VALUES ('"& art &"', '"& voto &"', '"& ip &"')"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3

sql= "SELECT COUNT(*) AS VOTATO FROM voti_utente WHERE id_utente= ('"& ip &"') AND id_articolo=('"& art &"')"
Set rsa = Server.CreateObject("ADODB.Recordset")
rsa.Open sql

IF rsa("VOTATO")>0 THEN
Response.Redirect ("errore.asp")
else
Response.Redirect ("http://www.retrogaminghistory.com/articolo.asp?id="& art )
end if
%>

ma mi da errore, dove sbaglio?
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
Scusa ma in id_utente che valore hai? e dove l'inserisci?
Non credo ti convenga usare come parametro di blocco l'IP...
Com un minimo di lettura sull'argomento (che è abbastanza complesso) ti renderai conto che ti comporterà non poco limiti e ti ritroverai con un n° non definito di visitatori bloccati :eek::eek:
Senza paramentri univoci assegnati da un login, non hai molte scelte...dovresti utilizzare i cookie (sempre con qualche limitazione).
 

Majinbu

Utente Attivo
31 Ago 2009
140
0
0
Salerno
www.zazoom.it
ASP...itina :hammer::hammer:
Nella pagina d'inserimento aggiungi

Codice:
<%
Response.Cookies("nome_cookies") = Request.Form("id_articolo")
Response.Cookies("nome_cookies").Expires = #December 25, 2010# ' qui imposti la scadeza
%>
Quidi ti basterà leggerlo nella pagina dove hai il form che invia i dati o in qualunque altra pagina con :
Codice:
<%Response.Write Request.Cookies("nome_cookie")%>
e quindi ....
Codice:
<% if Request.Cookies("nome_cookie") = "" then %>
 <!--qui aggiungi il  form -->
<%else%>
 <!--qui mostri un messaggio o quello che pare... Pippone! hai già votato -->
<%end if%>
Questo sempre a patto che l'utente abbia i cookie abilitati o non li abbia già cancellati....nella maggiorparte dei casi hai un buon risultato.

:byebye::byebye::byebye:
 

snakefrancesco

Utente Attivo
4 Mag 2008
33
0
0
Nella pagina articolo ho modificato così:

Codice:
<%Response.Write Request.Cookies("nome_cookie")%>
      <% if Request.Cookies("nome_cookie") = "" then %>
      <form method="post" action="process_form_vote.asp">
<input type="hidden" name="id_articolo" value="<%=rs("id")%>">
<SELECT name="voto" size=1 cols=4>
<OPTION selected Value=nessuna>
<OPTION value=1> 1
<OPTION value=2> 2
<OPTION Value=3> 3
<OPTION value=4> 4
<OPTION value=5> 5
<OPTION Value=6> 6
<OPTION value=7> 7
<OPTION value=8> 8
<OPTION Value=9> 9
<OPTION Value=10> 10
</select>
<input type="submit" value="Vota">
</form>
<%else%>
<p>Pippone! hai già votato</p>
<%end if%>

Nella pagina process_form_vote.asp così:

Codice:
<% 
If  Request.Form("voto") = " " then
Response.Redirect "pagina_precedente.asp"
end if
%>
<%
art = Request.Form("id_articolo")
voto = Request.Form("voto")
Response.Cookies("nome_cookies") = Request.Form("id_articolo")
Response.Cookies("nome_cookies").Expires = #December 25, 2010# ' qui imposti la scadeza

connessione = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("/mdb-database/database.mdb")
set conn = Server.CreateObject("ADODB.Connection")
conn.Open connessione
sql = "INSERT INTO voti_utente (id_articolo, voto) VALUES ('"& art &"', '"& voto &"')"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn ,3,3
Response.Redirect ("http://www.retrogaminghistory.com/articolo5.asp?id="& art )
%>

Purtroppo non succede nulla, però mi sono accorto di un'altra cosa ancora, la media certe volte viene molto lunga come 7,444444 come potrei fare per avere solo 7,4?
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Puoi controllare se c'è già un voto per quell'articolo da parte di quell'ID utente. Se le righe restituite sono una vuol dire che ha già votato e mostri errore, altrimenti inserisci il voto. È solo una soluzione teorica perché ASP non è il mio campo :p
 
Discussioni simili
Autore Titolo Forum Risposte Data
S problema sistema valutazione stelline Webdesign e Grafica 4
F Sistema rilevazione presenze PHP 1
MarcoGrazia Sistema di news interno al sito PHP 3
T SSD - errore sistema Hardware 2
R Come creare sistema Add to homescreen PHP 3
L Sistema outdoor centralizzato IP Cam e Videosorveglianza 0
F Sistema di autenticazione e pagamento PHP 3
LDB Multimedia e Internet Offro sistema di affiliazione remunerato Offerte e Richieste di scambio links 0
R [PHP] Creare sistema random PHP 3
brasoft2019 [PHP] Sistema di gestione presenze PHP 29
L Trasferimento dei file OLM Mac in formato PST sul sistema Mac Mac e Software 1
S [Javascript] Verifica separatore decimale sistema operativo Javascript 2
felino Windows 8.1: installare sistema operativo e programmi in due hard disk diversi Windows e Software 4
M Esiste un sistema di video sorveglianza simile? IP Cam e Videosorveglianza 1
W [Javascript] Eseguire script residente nel sistema da html remota Javascript 0
W Piccolo sistema per gestire alcune periferiche, Java o altro linguaggio? Java 8
V [Visual Basic] ottenere info su sistema Visual Basic 1
E Consiglio sistema di videosorveglianza IP Cam e Videosorveglianza 0
P Sistema per identificare utente se proviene da apertura app android Sviluppo app per Android 3
M consiglio sistema di videosorveglianza IP Cam e Videosorveglianza 1
loois Ho un problema nella creazione di un sistema di commenti in PHP PHP 11
xone [MySQL] Comparazione data per sistema di prenotazioni MySQL 23
papayablu Calcolatore scommesse a sistema per Android? Smartphone e tablet 4
A Sistema di comunicazione visiva IP Cam e Videosorveglianza 0
N Sistema di Help di Delphi 7 non funziona su Win10 Windows e Software 0
R Sistema Operativo Windows e Software 1
MarcoGrazia [Javascript] Sistema di caricamento dinamico in base allo scrolling Javascript 3
S Sistema di iscrizione al mio sito PHP 1
F come creare un sistema ranking tra due tabelle (TOMBOLA/BINGO) PHP 8
D Sistema di videocamere alta qualita IP Cam e Videosorveglianza 1
E sistema di autenticazione PHP 4
R Sistema di conteggio (somma) HTML e CSS 4
felino Presentazione foto e sistema di votazione PHP 2
M "BOOTMGR is missing" - formattare HD di sistema Windows e Software 2
JackIlPazzo Sistema di login e registrazione avanzato PHP 1
M Sistema per gestione file. PHP 1
S Creare Sistema di API Request e Response libero e protetto PHP 7
Christian1977 Nuovo sistema operativo Android Smartphone e tablet 3
A File di sistema PHP 6
simonetta619 sistema operativo a 32 o a 64bit? Windows e Software 1
L [gratuito] cerco sistema news xml in php5 Offerte e Richieste di Lavoro e/o Collaborazione 1
L pdo e sistema crud PHP 1
P Sistema di consultazione orari PHP 2
A windows 8 - INTERRUZIONE IMPREVISTA SERVICES DI SISTEMA Windows e Software 0
Alessandro Le Mura Sistema votazione mysql - php a stelle PHP 3
C Sistema particolare di password PHP 5
F Sistema anti MySQLi Injection? PHP 6
P Script sistema rating PHP 0
E Sistema di login PHP 4
M PHP/MySQL: Sistema per trovare multiaccount PHP 7

Discussioni simili