Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    Classifica migliore peggiore

    Ciao a tutti ecco la domanda del giorno

    in un database mysql ho una tabella presenze con questi 3 campi:
    nome (text)
    presenza(text)
    voto(text)

    tramite uno script php riempio questa tabella con il nome del giocatore e la presenza (Si o no)
    poi stampo a video la lista dei presenti (quelli ai quali la variabile presenza risulta su Si.

    Adesso ho fatto questa pagina:
    codice:
    <?php
    include 'config.php';
    include 'function.php';
    $requete = "SELECT * FROM presenze WHERE presenza='Si' ORDER by nome ASC";
    $result = mysql_query ($requete,$db_connect);
    ?>
    <html>
    <body>
    <center>
    <table border="1" cellpadding="0" cellspacing="0" bordercolor="#111111">
    			<td width="100%" align="center" nowrap>
    				<form method='post' action='voto.php'>
    				[b]Selezionare il Nome e indicare Migliore o Peggiore
    
    				<?php
    					echo "<select name=nome>";
    					while ($row=mysql_fetch_array($result)) {
    						echo "<option>" .$row["nome"]. "</option>";
    					}
    					echo "</select>";
    				?>
    				<input type='radio' value='Migliore' name='voto'> Migliore
    				<input type='radio' value='Peggiore' name='voto'> Peggiore
    				<input type='submit' value='Conferma'>
    				</form>
    			</td>
    </table>
    che mi permette di selezionare il nome in base ai presenti e di lanciare la pagina voto.php che inserisce la terza colonna (voto) e la imposta a migliore o peggiore:
    Codice PHP:
    <?php
    include 'config.php';
    include 
    'function.php';
    $temp2=mysql_real_escape_string($_POST['nome']);
    $res2 mysql_query("SELECT nome FROM presenze WHERE nome = '".$temp2."'");
    $presenzat mysql_query("SELECT voto FROM presenze WHERE nome = '".$temp2."'");
    $rowsi mysql_fetch_array($presenzatMYSQL_NUM);
    $presenza=$rowsi[0];
    mysql_query("UPDATE presenze SET voto = '".$_POST['voto']."' WHERE nome = '".$temp2."'");
    echo 
    "<center>[b]Registrazione effettuata con successo[/b]

    Attendere il caricamento della pagina o
    premere [url='classifica.php']QUI[/url] per visualizzare la lista dei presenti e no</center>"
    ;
    header("refresh: 7; url=classifica.php");
    ?>
    Il mio problema è il seguente:
    più persone possono inserire un nome e metterlo come "migliore" o "peggiore".
    Come potrei fare per inserire un contatore e poi generare una sorta di classifica?

    Grazie in anticipo

  2. #2
    aggiungi alla tabella due colonne "migliore" e "peggiore" il cui valore viene incrementato in base alle informazioni arrivate dal form.

    Codice PHP:
    if ($_POST['voto'] == "Migliore")
    $query "UPDATE presenze SET migliore = migliore + 1 WHERE nome = '".$temp2."'";
    else
    $query "UPDATE presenze SET peggiore = peggiore + 1 WHERE nome = '".$temp2."'"
    ovviamente è sempre d'obbligo validare gli input in arrivo dal form

  3. #3
    grazie 1000 sisi adesso vedo anche delle validazioni ma nel tuo esempio i campi migliore e peggiore li creo come int giusto?

  4. #4
    sisi int, scusa, me ne sono dimenticato.
    ah, valore di default = 0

  5. #5
    beh, il migliore o peggiore sono un numero di punti se ci pensi

    quindi sarebbe logico usare un campo int

  6. #6
    Non capisco cosa non funziona
    Codice PHP:
    <?php
    include 'config.php';
    include 
    'function.php';
    $temp2=mysql_real_escape_string($_POST['nome']);
    $temp3=mysql_real_escape_string($_POST['voto']);
    echo 
    "valore: ".$temp3;
    echo 
    "nome: ".$temp2;
    if (
    $temp3 == "Migliore") {
    echo 
    "e' migliore";
    $query "UPDATE presenze SET migliore = migliore + 1 WHERE nome = '".$temp2."'";
    }
    else
    {
    echo 
    "e' peggiore";
    $query "UPDATE presenze SET peggiore = peggiore + 1 WHERE nome = '".$temp2."'";
    }
    echo 
    "<center>[b]Registrazione effettuata con successo[/b]

    Attendere il caricamento della pagina o
    premere [url='classifica.php']QUI[/url] per visualizzare la lista dei presenti e no</center>"
    ;
    //header("refresh: 7; url=classifica.php");
    ?>
    Se eseguo direttamente sull'sql la query funziona... ma da questo codice non aggiorna niente
    dove sbaglio secondo te?
    grazie

  7. #7
    Codice PHP:
    $query "UPDATE presenze SET migliore = migliore + 1 WHERE nome = '".$temp2."'"
    mettere

    Codice PHP:
    $query "UPDATE presenze SET migliore = migliore + 1 WHERE nome = '$temp2' "
    ?

    Non risolve il tuo problema temo, ma almeno non spezzi le query

  8. #8
    manca l'esecuzione della query vera e propria

    Codice PHP:
    <?php 
    include 'config.php'
    include 
    'function.php'
    $temp2=mysql_real_escape_string($_POST['nome']); 
    $temp3=mysql_real_escape_string($_POST['voto']); 
    echo 
    "valore: ".$temp3
    echo 
    "nome: ".$temp2
    if (
    $temp3 == "Migliore") { 
    echo 
    "e' migliore"
    $query "UPDATE presenze SET migliore = migliore + 1 WHERE nome = '".$temp2."'"

    else 

    echo 
    "e' peggiore"
    $query "UPDATE presenze SET peggiore = peggiore + 1 WHERE nome = '".$temp2."'"

    mysql_query($query);
    echo 
    "<center>[b]Registrazione effettuata con successo[/b]

    Attendere il caricamento della pagina o
    premere [url='classifica.php']QUI[/url] per visualizzare la lista dei presenti e no</center>"

    //header("refresh: 7; url=classifica.php"); 
    ?>

  9. #9
    scusami ma sono pirla :P
    manca la riga di esecuzione della query sql
    scusami e ti ringrazio ancora

  10. #10
    grazie risposta velocissima... tante grazie ancora

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.