Visualizzazione dei risultati da 1 a 3 su 3

Discussione: confronto record

  1. #1
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128

    confronto record

    Ho bisogno di un piccolo aiuto... allora vi spiego..
    ho una tabella in un database con salvati una lista di atleti (atleteId) appartenenti ognuno ad una societa (teamId).

    ogni atleta è salvato due volte nella tabella, una volta nel corso di questa settimana e una volta la settimana scorsa.
    ogni atleta di una determinata società è salvato con le stesse date.

    devo confrontare l'atleta dalla settimana precedente con la settimana attuale per vedere se è cambiato.

    così funziona, però vorrei migliorare un pò questo codice che buttato così ora funziona ok ma fa un pò schifetto..

    Codice PHP:
    // funzione per mostrare se è migliorato o no l'atleta, 
    // se è migliorato mostro il valore in verde
    // se è peggiorato mostro il valore in rosso
    // altrimenti lo mostro normalmente
    function skill($a$b 0) {

                if (
    $a == $b) {

                    return 
    $a;

                } else if (
    $a $b) {

                    return 
    "<font color=\"green\">$a</font>";

                } else if (
    $a $b) {

                    return 
    "<font color=\"red\">$a</font>";

                }

            }

            
    // ricavo la data piu recente cioè della settimana attuale di solito
    $sql "SELECT data_inserimento FROM athletes WHERE teamId=8 ORDER BY data_inserimento DESC LIMIT 1";
    $query mysql_query($sql);
    $row mysql_fetch_array($query);

    // ricavo la data piu vecchia cioè della settimana precedente
    $sql2 "SELECT data_inserimento FROM athletes WHERE teamId=8 ORDER BY data_inserimento ASC LIMIT 1";
    $query2 mysql_query($sql2);
    $row2 mysql_fetch_array($query2);

    // mostro la lista degli atleti salvato in questa settimana
    $sql3 "SELECT * FROM athletes WHERE teamId='8' AND data_inserimento='" $row['data_inserimento'] . "'";
    $query3 mysql_query($sql3);
    while (
    $row3 mysql_fetch_array($query3)) {

    // ricavo informazioni del determinato atleta però della settimana precedente per confrontarlo
    $sql4 "SELECT * FROM athletes WHERE athleteId = '" $row3['athleteId'] . "' AND teamId='" $row3['teamId'] . "' AND data_inserimento='" $row2['data_inserimento'] . "'";
    $query4 mysql_query($sql4);
    $row4 mysql_fetch_array($query4);
    $row4_n mysql_num_rows($query4);

    // confronto settimane
    echo skill($row3['form'], $row4['form']) ."
    "
    ;
    echo 
    "Piu recente " $row3['form'] ."
    "
    ;
    echo 
    "Piu vecchio " $row4['form'] ."
    "
    ;



  2. #2
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    ho accorciato un pò il codice così:

    Codice PHP:
    // ricavo la data piu recente con MAX e quella della settimana precedente con MIN
    $sql "SELECT MAX(data_inserimento) AS data_rec, MIN(data_inserimento) AS data_vec FROM athletes WHERE teamId=8";
    $query mysql_query($sql);
    $row mysql_fetch_array($query);

    // mostro la lista degli atleti salvato in questa settimana
    $sql3 "SELECT * FROM athletes WHERE teamId='8' AND data_inserimento='" $row['data_rec'] . "'";
    $query3 mysql_query($sql3);
    while (
    $row3 mysql_fetch_array($query3)) {

    // ricavo informazioni del determinato atleta però della settimana precedente per confrontarlo
    $sql4 "SELECT * FROM athletes WHERE athleteId = '" $row3['athleteId'] . "' AND teamId='" $row3['teamId'] . "' AND data_inserimento='" $row['data_vec'] . "'";
    $query4 mysql_query($sql4);
    $row4 mysql_fetch_array($query4); 
    qualche consiglio??

  3. #3
    Utente di HTML.it L'avatar di torrone
    Registrato dal
    Apr 2006
    residenza
    Padova
    Messaggi
    1,128
    qualche consiglio su come migliorare il codice?.. o proprio cambiarlo?

    rispiego:

    ho una tabella "atleti" dove sono salvati appunto degli atleti

    codice:
    idAtleta - nome - dataInserimento - forma
    int - varchar - datetime - int
    ogni settimana vengono aggiornati gli atleti e rimangono in memoria il l'ultimo e il punultimo salvataggio cioè quello della settimana corrente e di quella precedente.
    devo fare una query dove confronto i cambiamento di ogni atleti quindi che mi sampi la lista di tutti gli atleti salvati e mi confronti la forma della settimana corrente con quella precedente e mi dica se è migliroato o no.

    qualcuno mi può dar un aiuto su come scrivere la query nel miglior modo..? grazie

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.