Gestionale risultati sport (volley). Help su Tabelle

  • Creatore Discussione Creatore Discussione mrbaba
  • Data di inizio Data di inizio

mrbaba

Utente Attivo
10 Mag 2012
25
0
1
Vorrei realizzare un semplice gestionale per organizzare tornei del mio gruppo amatoriale di pallavolo. Siamo una decina dei gruppi, tutti appassionati, e vorremmo fare una cosa carina su internet.
Quindi niente di complesso. Ho già provato Phpmysports e un plugin per WP ma non funziona nulla come dovrebbe (e joomla lo scarto io).
Pensavo di farmelo da solo e vorrei una mano a capire meglio come iniziare a impostare le tabelle del Db (mysql).
Dovrei quindi definire un Campionato e delle Squadre (o Società) in quanto la mia società amatoriale potrebbe fare un torneo (o campionato) misto, uno per i figli (tipo minivolley), o uno solo femminile etcc...
Poi devo gestire le partite. Il campionato verrà suddiviso in giornate dove più squadre si incontrano. Ogni incontro deve aggiornarmi una classifica.

Per ora ero arrivato qui:
Codice:
CAMPIONATO: id, nome
SQUADRE (o Società): id, nome
INCONTRI: 
id,
giornata,
sq_casa, 
sq_osp, 
pt_set_1_sq_casa, 
pt_set_1_sq_osp,
pt_set_2_sq_casa, 
pt_set_2_sq_osp,
pt_set_3_sq_casa, 
pt_set_3_sq_osp,
pt_set_4_sq_casa, 
pt_set_4_sq_osp,
pt_set_5_sq_casa, 
pt_set_5_sq_osp

1) che altro potrebbe mancare?
2) come potrei impostare la classifica? Al volo su query? (e come??). Oppure quando si salva l'incontro facciamo scrivere dei dati in un'altra tabella? (tipo CLASSIFICA)
(Vittoria 3-0 o 3-1 sono 3pt, vittoria 3-2 sono 2pt, sconfitta 2-3 è 1pt, sconfitta 1-3 o 0-3 sono 0pt ... in caso di pari pt in classifica si guarda la differenza set, e in caso ancora di parità si guarda anche la differenza pt_set)

Ringrazio in anticipo gli eventuali consigli..
 
ciao
io intanto farei una tabella classifiche (metto dei nomi estesi per capirsi)

id int primarykey autoincremet
id_campionato unique
id_squadra unique (oppure il nome della squadra)
punteggio
set

poi con php bisogna fare uno script che legga la tabella incontri e che elabori, ma a questo ci devo pensare o io o qualcun'altro spero ti dia delle indicazioni

p.s.
nella tabella incontri metterei anche il collegamento al campionato

INCONTRI:
id,
id_campionato,
giornata,
sq_casa,
sq_osp,
pt_set_1_sq_casa,
pt_set_1_sq_osp,
pt_set_2_sq_casa,
pt_set_2_sq_osp,
pt_set_3_sq_casa,
pt_set_3_sq_osp,
pt_set_4_sq_casa,
pt_set_4_sq_osp,
pt_set_5_sq_casa,
pt_set_5_sq_osp,

mettendo l'id del campionato poi è piu facile gestire la tabella incontri e classifica (update, delete)
 
Ok, sono d'accordo, ci vuole una tabella CLASSIFICA

ciao
poi con php bisogna fare uno script che legga la tabella incontri e che elabori,

Ecco ... php o mysql?

Leggevo dell'esistenza della funzione "sign" in mysql ... che restituisce +1 o -1 sui conteggi di valori.
Nella pallavolo i set non si pareggiano mai. Se un set finisce, ad esempio, 25-20 per la squadra di casa.. potrei in qualche modo sfruttare
Codice:
SIGN(pt_set_1_sq_casa-pt_set_1_sq_osp)
..che mi restituisce +1? (quindi siamo 1set a 0set per la squadra di casa)

..ehemm... però il mio ragionamento finisce qui ... cioè non so andare avanti su come calcolare la somma dei set, ovvero come arrivare a dire 3-0 o 3-1 o 3-2 o 2-3 ....
 
ciao
ci avevo pensato anche io, ma secondo me (ci sto pensando meglio) sarebbe meglio che la classifica venisse aggiornata in automatico quando inserisci i dati della partita.
questo perchè se la clissifica viene elaborata dopo si deve verificare se la partita è gia stata conteggiata o no, oppure generarla tutte le volte a quel punto forse non serve la tabella classifiche.
se non hai fretto butto giù qualcosa.
 
ciao
ecco una prima idea.
presuppongo che tu inserisca i dati della partita tramite form.
in questo modo una volta inserito i dati della partita in automatico ti si aggiorna la classifica
PHP:
<?php
//.....
//leggo i valori dal form
$id_campionato=$_POST['id_campionato'];
$giornata=$_POST['giornata'];
$sq_casa=$_POST['sq_casa']; 
$sq_osp=$_POST['sq_osp']; 
$set_cas[1]=$_POST['pt_set_1_sq_casa'];
$set_osp[1]=$_POST['pt_set_1_sq_osp'];
$set_cas[2]=$_POST['pt_set_2_sq_casa'];
$set_osp[2]=$_POST['pt_set_2_sq_osp'];
$set_cas[3]=$_POST['pt_set_3_sq_casa'];
$set_osp[3]=$_POST['pt_set_3_sq_osp'];
$set_cas[4]=$_POST['pt_set_4_sq_casa'];//questi se non fatti devono risultare o vuoti o 0 (ipotizzo 0)
$set_osp[4]=$_POST['pt_set_4_sq_osp'];
$set_cas[5]=$_POST['pt_set_5_sq_casa'];
$set_osp[5]=$_POST['pt_set_5_sq_osp'];
$vinti_casa=0;
$vinti_osp=0;
for($k=1; $k<=5;$k++){//ciclo i risultati
	//verifico quali set sono stati giocati
	if($set_cas[$k] !==0 && $set_osp[$k] !==0){//se entrambi 0 il set non giocato
		//verifico il punteggio
		if($set_cas[$k] > $set_osp[$k]){//ha vinto casa
			$vinti_casa++;//incremento di 1
		}else{//ha vinto l'ospite
			$vinti_osp++;
		}
	}
}
//elaboro il tipo di vincita
$tipo=$vinti_casa."-".$vinti_osp;
/*$tipo risulterà (verifica che sia giusto)
3-0 -> 3 punti a casa, 0 a ospite
3-1 -> 3 punti a casa, 0 a ospite
3-2 -> 2 punti a casa, 1 a ospite
2-3 -> 1 punti a casa, 2 a ospite
1-3 -> 0 punti a casa, 3 a ospite
0-3 -> 0 punti a casa, 3 a ospite
*/
$punti_casa=0;
$punti_ops=0;
if($tipo =="3-0" || $tipo =="3-1"){
	$punti_casa=3;
	$punti_ops=0;
}elseif($tipo =="3-2"){
	$punti_casa=2;
	$punti_ops=1;
}elseif($tipo =="2-3"){
	$punti_casa=1;
	$punti_ops=2;
}elseif($tipo =="1-3" || $tipo =="0-3"){
	$punti_casa=0;
	$punti_ops=3;
}
//qui inserisco i dati nella tabella INCONTRI
//poi se è la prima partita del girone inserisco i risultati dei punteggi nella tab CLASSIFICA
//altrimenti UPPO i valori in CLASSIFICA
?>
per vedere poi la classifica nell'ordivne che hai indicato basta che nella select tu metta order by

SELECT * FROM classifica WHERE girone=$girone ORDER BY punteggio, set

spero di essere stato chiaro, altrimenti sono qui
 

Discussioni simili