• User Attivo

    Classifica

    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>";
    }
    [/PHP]
    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?

    Grazie!!!


  • User Attivo

    Ciao! Allora ho provato a fare così, mi sapete dire gentilmente se ho fatto giusto?

    mmmmmmmmmmmmmm
    Ho fatto così
    Tabella DB "utenti" con questi campi: cognome_utente, nome_utente, tot (che sarebbe il punteggio totale)
    Pagina classifica.php
    [PHP]
    $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>";
    ?>[/PHP]

    Come faccio ora a collegarmi alla pagina html e l'altra pagina php?
    Pagina html
    [HTML]<form action="php.php" method="post">
    <p><b>4) IL MIO NOME E':</b></p>
    <input type="radio" name="R4" value="1">fabrizio</input><br>
    <input type="radio" name="R4" value="2">mario</input><br>
    <input type="radio" name="R4" value="2">samuele</input><br>
    <input type="radio" name="R4" value="4">elia</input><br>
    <input type="radio" name="R4" value="5">michela</input><br><br>
    <input type="submit" value="Rispondi" />
    </form>[/HTML]
    Pagina php.php
    [PHP]<?php
    $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";
    ?>
    [/PHP]
    Casinoooo!!!! :):):)
    Grazie! 💋


  • User Attivo

    Sono arrivato a questo punto ma non mi stampa la classifica...le domande e le risposte funzionano ma non mi dà i dati nella pagina classifica.php

    Ho una tabella nel dbper la classifica
    CLASSIFICA con id, cognome_utente, nome_utente, tot e punteggio.

    Questa è la pagina domanda.php
    [php]<?php
    if(!isset($_SESSION)){session_start ();}
    require('config.php');
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    ?>
    <form action="php.php" method="post">
    <p><b></b></p>
    <input type="radio" name="R1" value="1"></input><br>
    <input type="radio" name="R1" value="2"></input><br>
    <input type="radio" name="R1" value="3"></input><br>
    <input type="radio" name="R1" value="4"></input><br>
    <input type="radio" name="R1" value="5"></input><br><br>

    <p><b></b></p>
    <input type="radio" name="R2" value="1"></input><br>
    <input type="radio" name="R2" value="2"></input><br>
    <input type="radio" name="R2" value="3"></input><br>
    <input type="radio" name="R2" value="4"></input><br>
    <input type="radio" name="R2" value="5"></input><br><br>

    <p><b></b></p>
    <input type="radio" name="R3" value="1"></input><br>
    <input type="radio" name="R3" value="2"></input><br>
    <input type="radio" name="R3" value="3"></input><br>
    <input type="radio" name="R3" value="4"></input><br>
    <input type="radio" name="R3" value="5"></input><br><br>
    <p><b></b></p>
    <input type="radio" name="R4" value="1"></input><br>
    <input type="radio" name="R4" value="2"></input><br>
    <input type="radio" name="R4" value="2"></input><br>
    <input type="radio" name="R4" value="4"></input><br>
    <input type="radio" name="R4" value="5"></input><br><br>
    <input type="submit" value="Rispondi" />
    </form>[/php]
    Questa è la pagina php.php (funziona col form ma non trasmette i dati nella pagina classifica.php
    [PHP]<?php
    if(!isset($_SESSION)){session_start();}
    require('config.php');
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));
    ?>
    <?php
    $db_host = '';
    $db_utente = '';
    $db_password = '';
    $db_nomedb = '';
    $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);
    ?>
    <?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']:"";
    $punteggio = 0; // variabile del risultato
    if($frase1 == $risposta_corretta_domanda1) {
    $punteggio++;
    echo "<b>Risposta alla domanda 1</b> : <b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>";
    } else {
    if ($frase1 == "") echo "<b>Domanda 1</b>: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
    else echo "<b>Risposta alla domanda 1</b>: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br><br><font color= red>RIPROVA</font><br><br>";
    }

    if($frase2 == $risposta_corretta_domanda2) {
    $punteggio++;
    echo "<b>Risposta alla domanda 2</b>: <b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>";
    } else {
    if ($frase2 == "") echo "<b>Domanda 2</b>: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
    else echo "<b>Risposta alla domanda 2</b>: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br><br><font color= red>RIPROVA</font><br><br>";
    }

    if($frase3 == $risposta_corretta_domanda3) {
    $punteggio++;
    echo "<b>Risposta alla domanda 3</b>: <b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>";
    } else {
    if ($frase3 == "") echo "<b>Domanda 3</b>: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
    else echo "<b>Risposta alla domanda 3</b>: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br><br><font color= red>RIPROVA</font><br><br>";
    }
    if($frase4 == $risposta_corretta_domanda4) {
    $punteggio++;
    echo "<b>Risposta alla domanda 4</b>: <b><u><i><font color= green>ESATTA!</font></b></u></i><br><br>";
    } else {
    if ($frase4 == "") echo "<b>Domanda 4</b>: <b><u><i>NON HAI RISPOSTO</b></u></i><br><br>";
    else echo "<b>Risposta alla domanda 4</b>: <b><u><i><font color= red>ERRATA!</font></b></u></i> <br><br><font color= red>RIPROVA</font><br><br>";
    }
    $tot = ($punteggio == 1) ? "$punteggio punto" : "$punteggio punti";
    $punteggio=$_SESSION['punteggio'];
    echo "Hai totalizzato $tot";
    ?>
    [/PHP]
    Questa è la pagina classifica.php
    [PHP]<?php
    if(!isset($_SESSION)){session_start ();}
    require('config.php');
    if(!isset($_SESSION['login']))
    {
    header('Location: index.php');
    exit;
    }
    $default = mysql_fetch_array(mysql_query("SELECT cognome_utente, nome_utente FROM utenti WHERE id = '{$_SESSION['login']}' LIMIT 1"));

    ?>
    <?php
    $db_host = '';
    $db_utente = '';
    $db_password = '';
    $db_nomedb = '';
    $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);
    ?>
    <?php
    $query=mysql_query("SELECT cognome_utente, nome_utente FROM classifica ORDER BY tot");
    $classifica=mysql_num_rows($query);
    echo "<table>";
    //non devi usare l'array globale $_post
    while($classifica=mysql_fetch_array($query)){

    $cognome_utente=$classifica['cognome_utente'];
    $nome_utente=$classifica['nome_utente'];
    $tot=$classifica['tot'];
    $punteggio=$_SESSION['punteggio'];
    $tot = ($punteggio == 1) ? "$punteggio punto" : "$punteggio punti";

    echo "<tr>

    <td>$cognome_utente</td> 
    <td>$nome_utente</td> 
     <td>Hai totalizzato $tot</td>
    
    </tr>";  
    

    } //fine del while
    echo "</table><br><br>";
    ?>[/PHP]

    Domanda.php e php.php funzionano ma classifica.php no...

    Grazie infinite!