Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23

    Visualizzare la posizione in una classifica dell'utente loggato!!

    Salve a tutti,
    Mi chiamo Michele, ho 21 anni e sono il nuovo arrivato in questo magnifico forum!
    Per farla breve, sto creando una semplice classifica in php, che si appoggia a un database mysql, ma sono arrivato a un punto di stallo!!

    Praticamente ho una tabella "gara" strutturata così:
    ---------------------
    posizione|nome|punti|
    1 gino 47
    2 pippo 87
    3 rocco 32
    4 pietro 23
    5 alex 12
    6 franco 8
    ---------------------

    la classifica è visibile a tutti nell' homepage e sono riuscito a fare in modo che venga visualizzata in ordine decrescente un base ai punti tramite la seguente query:

    $q = mysql_query("SELECT nome,punti FROM utenti ORDER BY punti DESC");

    fin quì tutto ok.

    Arrivato a questo punto vorrei che ogni utente, a login avvenuto, visualizzi nella propria area privata la sua posizione attuale in classifica, una cosa del tipo:
    -----------------------
    Ciao alex, hai 12 punti
    sei 5° in classifica
    -----------------------
    Il nome e i punti riesco a farli visualizzare, ma la posizione no e sto uscendo pazzo da due giorni!!

    infatti se faccio una query in cui dico di selezionare il campo "posizione" del rispettivo utente in sessione(usiamo come esempio l'utente pippo della tabella che ho scritto sopra), invece di
    di dire:
    -----------------------
    Ciao pippo, hai 87 punti
    in classifica sei 1°
    -----------------------
    dice così:
    -----------------------
    Ciao pippo, hai 87 punti
    in classifica sei 2°
    -----------------------
    infatti, non stampa la posizione in base ai punti che ha pippo, ma va semplicemente a prelevare e stampare la posizione che trova nel campo "posizione" senza tenere conto dei punti.

    Io non so più cosa fare, ho le fitte al cervello

    So che sicuramente è una cavolata ma io per ora mi metto di lato e attendo qualche anima pia che mi dia una mano!!
    Ah sono un principiante sia del php che di mysql, ma studiandoli da 6 mesi credo di aver acquisito le basi.

    Vi ringrazio in anticipo per una eventuale risposta.

    Ciao!
    Se sei padrone di te stesso sei padrone
    del mondo...

  2. #2
    Ciao,
    ci sono tanti modi per fare quello che chiedi...

    il primo che mi viene in mente è questo:

    visto che il nome e i punti riesci a farli visualizzare vuol dire che hai già due varibili che li contengono
    $nome (che varrà 'pippo')
    e $punti (ch varrà 87)

    a questo punto puoi fare

    puoi fare
    SELECT COUNT(*)+1 FROM utenti WHERE punti>$punti

    e ottieni la posizione in classifica
    (in pratica conti quanti utenti hanno più punti dell'utente loggato e aggiungi 1)

    ---

    tieni però presente che nel caso in cui ci siano più utenti con lo stesso numero di punti questo metodo ti dà posizione assoluta
    cioè se la tua classifica è
    1. pippo 90
    2.ciccio 88
    3. pino 70
    4. luca 70
    5. alex 70

    e chiedi la posizione di alex otterrai che alex che è in 3a posizione, il che è corretto a meno che non viasiano altri parametri x la classifica avulsa!!!

    ---
    PH

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    23
    Perfetto funziona!!! Grazie infinite!!!

    posto il codice, magari torna utile a qualcuno:

    -------------------------------------------------------------------------------------
    <?php

    include("connessione.php");
    include("configurazione.php");

    $utente='Becco';

    mysql_select_db("$db_name");

    $query_uno = mysql_query("SELECT * FROM concorrenti WHERE username = '$utente' ");
    $arr= mysql_fetch_array($query_uno);

    $utente=$arr['username'];
    $click=$arr['click'];

    $query_due = mysql_query ("SELECT COUNT(*)+1 FROM concorrenti WHERE click>$click");
    $res_count = mysql_fetch_row($query_due);
    $tot_records = $res_count[0];

    echo $tot_records;

    ?>
    --------------------------------------------------------------------------------------
    alla prossima!!
    Se sei padrone di te stesso sei padrone
    del mondo...

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.