• User Newbie

    Php mysql e classifca di calcio!

    Ciao a tutti
    Sto creando una classifica automatica per una piccola squadra di calcio.
    Con un pochino di studio e fortuna ho strutturato le pagine di modifica, cancellazione, ed inserimento dei dati nel database
    putroppo la cosa più importante , la query che calcoli la classifica non riesco a farla.
    qualcuno mi può aiutare?
    i campi del datase sono "ID" "Stagione" Giornata" "Casa" "Trasferta" "Gol Casa" "Gol Trasferta"

    il risultato dovrebbe essere una classifica coni seguenti campi
    "posizione" "squadra" "punti" "giocate" "vinte" "pareggi" "sconfitte" "gol fatti" " gol subiti" (e stessa cosa in casa e in trasferta)

    ci sto lavorando da qualche mese e non riesco ad ottenere nulla :crying:


  • User Attivo

    Devi iniziare con una classe che calcoli l'esito di ogni partita in base alla differenza fra i gol di a e di b

    poi una classe che calcoli i punteggi partita
    in base alla precedente.
    e poi una classe che calcoli le graduatorie in base a quest'ultima..e così via.


  • User Newbie

    Purtroppo non ho le capacità per affrontare un discorso da zero.
    Online ho trovato questo codice che funziona benissimo come query in phpmyadmin ma non riesco a trasformarlo in una query php?
    Perdonami se sto dicendo una sciocchezza

    select squadra,
    count(squadra) as partite,
    sum(if(punteggio=3,1,0)) as vittorie,
    sum(if(punteggio=1,1,0)) as pareggi,
    sum(if(punteggio=0,1,0)) as sconfitte,
    sum(punteggio) as punteggio,
    sum(fatti) as fatti,
    sum(subiti) as subiti,
    sum(fatti)-sum(subiti) as diff_reti,
    sum(if(dove="C",fatti,0)) as fatti_casa,
    sum(if(dove="T",fatti,0)) as fatti_trasferta,
    sum(if(dove="C",subiti,0)) as subiti_casa,
    sum(if(dove="T",subiti,0)) as subiti_trasferta,
    sum(if(punteggio=3 and dove = "C",1,0)) as vittorie_casa,
    sum(if(punteggio=1 and dove = "C",1,0)) as pareggi_casa,
    sum(if(punteggio=0 and dove = "C",1,0)) as sconfitte_casa,
    sum(if(punteggio=3 and dove = "T",1,0)) as vittorie_trasferta,
    sum(if(punteggio=1 and dove = "T",1,0)) as pareggi_trasferta,
    sum(if(punteggio=0 and dove = "T",1,0)) as sconfitte_trasferta,
    sum(if(dove = "C",1,0)) as partite_casa,
    sum(if(dove = "T",1,0)) as partite_trasferta
    from
    (
    select sq_casa as squadra,gol_casa as fatti,gol_trasferta as subiti,"C" as dove,
    case
    when gol_casa > gol_trasferta then 3
    when gol_casa = gol_trasferta then 1
    else 0
    end as punteggio
    from campionato
    union all
    select sq_trasferta as squadra,gol_trasferta as fatti,gol_casa as subiti,"T",
    case
    when gol_trasferta > gol_casa then 3
    when gol_trasferta = gol_casa then 1
    else 0
    end as punteggio
    from campionato
    ) as tab
    group by squadra
    order by punteggio desc


  • User Attivo

    Se questa query fa già al caso tuo, devi solo inserirla in una pagina PHP tramite una semplice esecuzione della query SQL.
    ti basterà fare una semplice ricerca "PHP MySQL" e troverai dozzine di esempi su come fare.


  • User Newbie

    @Artigiani del Web said:

    Se questa query fa già al caso tuo, devi solo inserirla in una pagina PHP tramite una semplice esecuzione della query SQL.
    ti basterà fare una semplice ricerca "PHP MySQL" e troverai dozzine di esempi su come fare.

    Quindi non devo modificare questa parte di codice ma lanciare una query inserendo il codice in questione?
    pensavo fosse necessario modificarlo in qualche modo
    Grazie


  • User Attivo

    Dipende da quello che vuoi ottenere.

    Io personalmente farei Delle classi come scritto sopra, in modo da avere la possibilità di avere diverse variabili $nome $punteggi etc da inserire dove voglio nel mio HTML.

    Se poi non sei in grado ti consiglio di approfondire un po' PHP/MySQL, io non ho analizzato la query postata sopra, ho solo preso atto che a te andava bene e ti consigliavo di lanciarla da PHP.

    I campi del database
    ID" "Stagione" Giornata" "Casa" "Trasferta" "Gol Casa" "Gol Trasferta"
    non saprei come associarli ad una singola squadra, quindi mi manca questa parte.


  • User Newbie

    in pratica ho un database che contiene una tabella con tuttte le partite , i risultati , le stagioni e le giornate
    lanciando la query vorrei ottenere la classifica che poi verrà specificata in base alla giornata
    ho già prepratato le pagine di inserimento , modifica e visualizzazione.

    se lancio la query in sql ottengo come risultato la classifica divisa per squadre, punti giocate vinte perse gol fatti e subiti in totale e poi stesa cosa per "in casa" e "in trasferta"
    quello che mi serve.
    (tieni presente che non essendo un esperto posso anche sbagliarmi)

    una domanda :
    La query la lancio da php ma non deve essere "fusa" con il database?
    usando phpmyadmin penso che si possa incorporare al momento del salvataggio del database