Classifica

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao ragazzi! Rompo ancora le scatole :)

Ho fatto tempo fà uno script con domande e risposte però mi piacerebbe fare una classifica tra gli utenti che si registrano nel mio sito.

Vi posto un pò di codice php ben funzionante

PHP:
$risposta_corretta_domanda1=3;
$risposta_corretta_domanda2=1;
$risposta_corretta_domanda3=4;
$risposta_corretta_domanda4=1;

$frase1=isset($_POST['R1'])?$_POST['R1']:"";
$frase2=isset($_POST['R2'])?$_POST['R2']:"";
$frase3=isset($_POST['R3'])?$_POST['R3']:""; 
$frase4=isset($_POST['R4'])?$_POST['R4']:""; 
$risultato = "";      // variabile del risultato

if($frase1 == $risposta_corretta_domanda1) { 
$risultato++; 
echo "<b>Risposta alla domanda 1</b> Il mio nome è: <b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>"; 
} else {
if ($frase1 == "") echo "<b>Domanda 1</b> Il mio nome è: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
else echo "<b>Risposta alla domanda 1</b> Il mio nome è: <b><u><i><font color= red>ERRATA!</font></b></u></i><br>";
}

Grazie!!! :)
 
Ultima modifica:

lotus

Utente Attivo
5 Mag 2009
543
8
0
Ciao,

vorrei aiutarti ma non ho ben capito cosa vuoi fare:
Vuoi fare una classifica in merito alle domande e risposte ricevute dagli utenti?

Per poter fare questo dovresti memorizzare sul db o altrove gli esiti delle risposte per ciascun utente e quindi poter calcolare la classifica (eventuaslmente anche secondo specifici criteri - ad ogni domanda è associato un punteggio)?

Dove vengono memroizzate le risposte?

Ciao, Ciro
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao,

vorrei aiutarti ma non ho ben capito cosa vuoi fare:
Vuoi fare una classifica in merito alle domande e risposte ricevute dagli utenti?

Per poter fare questo dovresti memorizzare sul db o altrove gli esiti delle risposte per ciascun utente e quindi poter calcolare la classifica (eventuaslmente anche secondo specifici criteri - ad ogni domanda è associato un punteggio)?

Dove vengono memroizzate le risposte?

Ciao, Ciro
Ciao Ciro, ancora stò covando l'idea, nel db ancora non ho messo nulla...
Sì, ad ogni domanda viene assegnato un punteggio...però senza memorizzazione di utente, nè memorizzazione di punteggio...

Esempio: Utente PINCO PALLO 50 domande, 40 giuste, 10 sbagliate TOT PUNTI 40 ...vorrei memorizzare il tutto in modo tale che quando si rifà il test o si fanno altri test il punteggio incrementa dando origine a classifiche fra utenti......

Grazie :)
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Allora ditemi se dico bene :)
Creo nel db id_utente, nome_utente, cognome_utente, id_quiz, punteggio_id_utente, classifica_id_utente

Poi...SELECT $id_utente, $nome_utente, $cognome_utente, $id_quiz, $punteggio_id_utente, $classifica_id_utente...giusto?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
non intendevo per le variabili che mancano, ma la tabella in primis
tanto per dire una cosa, immagino che l'utente debbe essere iscritto, per cui avrai una tabella utenti
id_utente
nome
cognome
username (?)
password (?)
quindi a che ti serve riportare nella tabella che hai indicato il nome ed il cognome?
poi i due campi
e
classifica_id_utente
il punteggio_id_utente è il punteggio in un dato id_quiz,
la classifica_id_utente è la calassifica su tutti i quiz o solo per id_quiz
se è per tutti e l'utente ha fatto 100 quiz devi aggiornare (e avere) 100 record simili, se e la classifica per un solo quiz per vedere chi è primo o ultimo ti basterebbe fare ORDER BY punteggio_id_utente

io rivedrei le tabelle
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Grazie Borgo, vero...

Sì, vorrei fare un classifica unica per tutti i quiz con BY ORDER...vedò un pò che viene fuori...:book:
Grazie, mi faccio sentire :)
Ciao!!!
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Ciao! Allora tanto per cominciare faccio venire a monitor cognome e nome
PHP:
<?php 

// Dati connessione al database 
$db_host = 'localhost';        // Host - solitamente localhost 
$db_utente = 'root';        // Nome utente del Database 
$db_password = '';        // Password del Database 
$db_nomedb = '';     // Nome del Database 

// Effettua la connessione al database 
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error()); 
mysql_select_db($db_nomedb); 



$query=mysql_query("SELECT id, cognome_utente, nome_utente FROM utenti ORDER BY cognome_utente");

$utenti=mysql_num_rows($query);


echo "<table>";  
//non devi usare l'array globale $_post 
while($utenti=mysql_fetch_array($query)){  

 
$id=$utenti['id'];  
$cognome_utente=$utenti['cognome_utente'];  
$nome_utente=$utenti['nome_utente'];  


echo "<tr> 
    <td>$id</td> 
    <td>$cognome_utente</td> 
    <td>$nome_utente</td> 
    
    </tr>";  
} //fine del while 
echo "</table><br><br>";   
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
a che ti serve quel
$utenti=mysql_num_rows($query);
se poi non lo usi?

io farei così

PHP:
$ci_sono_utenti=mysql_num_rows($query); 
echo "<table>";
if($ci_sono_utenti > 0){
//.................
echo "<table>";   
while($utenti=mysql_fetch_array($query)){
//................
}else{
echo "<tr><td colspan=\"3\">non ci sono utenti</td></tr>";
}
echo "</table>";
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
mmmmmmmmmmmmmm

Ho fatto così

Tabella DB "utenti" con questi campi: cognome_utente, nome_utente, tot (che sarebbe il punteggio totale)

Pagina classifica.php
PHP:
if(!isset($_SESSION)){$session_start();}

$_SESSION['utenti']=$tot;


$tot=$_SESSION['utenti']; 


$query=mysql_query("SELECT cognome_utente, nome_utente FROM utenti ORDER BY tot");

$utenti=mysql_num_rows($query);

echo "<table>";  
//non devi usare l'array globale $_post 
while($utenti=mysql_fetch_array($query)){  

  
$cognome_utente=$utenti['cognome_utente'];  
$nome_utente=$utenti['nome_utente'];  
$tot=$utenti['tot'];
$tot = ($risultato == 1) ? "$risultato punto" : "$risultato punti";


echo "<tr> 
    
    <td>$cognome_utente</td> 
    <td>$nome_utente</td> 
     <td>Hai totalizzato $tot</td>
    
    </tr>";  
} //fine del while 
echo "</table><br><br>";   
?>


Come faccio ora a collegarmi alla pagina php e l'altra pagina php?

Pagina php

PHP:
if(!isset($_SESSION)){$session_start();}

$_SESSION['utenti']=$tot;

$tot=$_SESSION['utenti']; 


<form action="php.php" method="post">

<p><b>4) IL MIO NOME E':</b></p>
<input type="radio" name="R1" value="1">fabrizio</input><br>
<input type="radio" name="R1" value="2">mario</input><br>
<input type="radio" name="R1" value="2">samuele</input><br>
<input type="radio" name="R1" value="4">elia</input><br>
<input type="radio" name="R1" value="5">michela</input><br><br>

<input type="submit" value="Rispondi" />
</form>

Pagina php.php

PHP:
if(!isset($_SESSION)){$session_start();}


$_SESSION['utenti']=$tot;

$tot=$_SESSION['utenti']; 


$risposta_corretta_domanda1=3;

$frase1=isset($_POST['R1'])?$_POST['R1']:"";
$risultato = "";      // variabile del risultato

if($frase1 == $risposta_corretta_domanda1) { 
$risultato++; 
echo "<b>Risposta alla domanda 1</b> IL mio nome è:<b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>"; 
} else {
if ($frase1 == "") echo "<b>Domanda 1</b> Il mio nome è: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
else echo "<b>Risposta alla domanda 1</b> Il mio nome è: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br>RIPROVA</font><br><br>";
} 
 
$tot = ($risultato == 1) ? "$risultato punto" : "$risultato punti";
echo "Hai totalizzato $tot";  
?>
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
a parte quello che dice alex (notato come è diventato serioso da quando è assurto agli altari?) che non ha tutti i torti, volevo dirti
Casinoooo!!!! :):):)
mi sembra di si.

1. cosa intendi per collegarti alla pagina php? se l'action del form punta a pagina.php col submit ti porti a quella pagina
2. nel form (a parte due value=2) chiami i radio R4, poi raccogli con $_POST R1, da dove viene R1? non dovrebbe essere R4?
3. poi non capisco bene gli if (sarà perche a me non piacciono gli if abbreviati)
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Gli script gli ho tagliati ma R1 corrisponde, tutto funziona, le domande con la pagina php.php funziona alla perfezione, quello che intendevo dire e come faccio a collegare queste pagine alla classifica? cioè a classifica.php?

Grazie!
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
Per la classifica ho trovato questa, l'ho un pò adattata ai miei gusti, ma il punto interrogativo rimane sempre, non mi ricordo come faccio a far immettere i dati del punteggio nella pagina del punteggio :confused:

PHP:
<table> 
  <tr> 
    <th>Id</th> 
    <th>Cognome</th> 
    <th>Nome</th> 
    <th>Punteggio</th> 
  </tr> 

<?php 
$res = mysql_query("SELECT * FROM utenti ORDER BY punteggio DESC") or die (mysql_error()); 
$x = 0; 
while ($utenti = mysql_fetch_assoc($res)) { $x++; 
?> 
<tr> 
  <td><?php echo $x; ?></td> 
  <td><?php echo $utenti['cognome_utente']; ?></td> 
  <td><?php echo $utenti['nome_utente']; ?></td> 
  <td><?php echo $utenti['punteggio']; ?></td> 
</tr> 
<?php } ?> 
</table>
Grazie!
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
148
63
PR
www.borgo-italia.it
ciao
per passare i valori da una pagina all'altra puoi usare le sessioni, però attento le pagine devono essere php non html.
ricordati che tutte le pagine in cui usi le sessioni devono iniziare con

if(!isset($_SESSION)){$session_starat();}

poi nella pgina che ti interssa valorizzi la sessione, es.

$_SESSION['totale']=$tot;
$_SESSION['pinco_pallo']=$pnco;

ed in quella in cui ti servono

$tot=$_SESSION['totale'];
 

Bizio2009

Utente Attivo
12 Giu 2009
310
0
0
mmmmmmmmmmmmmm

Ho fatto così

Tabella DB "utenti" con questi campi: cognome_utente, nome_utente, tot (che sarebbe il punteggio totale)

Pagina classifica.php
PHP:
if(!isset($_SESSION)){$session_start();}

$_SESSION['utenti']=$tot;


$tot=$_SESSION['utenti']; 


$query=mysql_query("SELECT cognome_utente, nome_utente FROM utenti ORDER BY tot");

$utenti=mysql_num_rows($query);

echo "<table>";  
//non devi usare l'array globale $_post 
while($utenti=mysql_fetch_array($query)){  

  
$cognome_utente=$utenti['cognome_utente'];  
$nome_utente=$utenti['nome_utente'];  
$tot=$utenti['tot'];
$tot = ($risultato == 1) ? "$risultato punto" : "$risultato punti";


echo "<tr> 
    
    <td>$cognome_utente</td> 
    <td>$nome_utente</td> 
     <td>Hai totalizzato $tot</td>
    
    </tr>";  
} //fine del while 
echo "</table><br><br>";   
?>


Come faccio ora a collegarmi alla pagina php e l'altra pagina php?

Pagina php

PHP:
if(!isset($_SESSION)){$session_start();}

$_SESSION['utenti']=$tot;

$tot=$_SESSION['utenti']; 


<form action="php.php" method="post">

<p><b>4) IL MIO NOME E':</b></p>
<input type="radio" name="R1" value="1">fabrizio</input><br>
<input type="radio" name="R1" value="2">mario</input><br>
<input type="radio" name="R1" value="2">samuele</input><br>
<input type="radio" name="R1" value="4">elia</input><br>
<input type="radio" name="R1" value="5">michela</input><br><br>

<input type="submit" value="Rispondi" />
</form>

Pagina php.php

PHP:
if(!isset($_SESSION)){$session_start();}


$_SESSION['utenti']=$tot;

$tot=$_SESSION['utenti']; 


$risposta_corretta_domanda1=3;

$frase1=isset($_POST['R1'])?$_POST['R1']:"";
$risultato = "";      // variabile del risultato

if($frase1 == $risposta_corretta_domanda1) { 
$risultato++; 
echo "<b>Risposta alla domanda 1</b> IL mio nome è:<b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>"; 
} else {
if ($frase1 == "") echo "<b>Domanda 1</b> Il mio nome è: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
else echo "<b>Risposta alla domanda 1</b> Il mio nome è: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br>RIPROVA</font><br><br>";
} 
 
$tot = ($risultato == 1) ? "$risultato punto" : "$risultato punti";
echo "Hai totalizzato $tot";  
?>

Così Borgo?
 
Discussioni simili
Autore Titolo Forum Risposte Data
Tommy03 Algoritmo classifica SQL MySQL 0
M [PHP] Elenco con "classifica" delle informazioni nel db PHP 3
cristoforo58 Classifica PHP MySQL PHP 2
primis Classifica Facebook Offerte e Richieste di Lavoro e/o Collaborazione 0
R Creare una classifica con Access 2007 Database 1
M Aggiornare valori in mysql (classifica) PHP 8
E Classifica MySQL 7
Web Designer Classifica 2012 dei migliori antivirus in commercio Sicurezza e Virus 9
P Script per classifica Tipster Content Management System (CMS) 2
G Script per Classifica PHP 2
cosov Estrarre valori unici per classifica Classic ASP 4
M php script per classifica PHP 2
O classifica parimerito Classic ASP 1
N Problema Classifica gioco Flash 1
D Chi mi può aiutare nel fare 1 classifica? PHP 1
S Classifica Gioco Flash 2
A Assegnare rango ad una classifica in MS Access MS Access 1
A Da prompt java a classifica Javascript 1
M Promuovi il tuo sito nella nuova classifica della SABA Top100 SEO e Posizionamento 0
N Creazione classifica per gioco HTML e CSS 1
L classifica amministrative... provinciali... Leggi, Normative e Fisco 0
G votare una classifica Classic ASP 2
C Sito in classifica Supporto Mr.Webmaster 2
G votare una classifica HTML e CSS 3
peppoweb Classifica annuale delle 50 persone più importanti e influenti del Web. Discussioni Varie 3

Discussioni simili