- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- Php mysql e classifca di calcio!
-
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
-
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.
-
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 sciocchezzaselect 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
-
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.
-
@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
-
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.
-
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