FantacalcioBazar Evolution

Versione Completa: Punteggi della giornata TUTTI A 0!
Al momento stai visualizzando una versione semplificata dei nostri contenuti. Passa alla visualizzazione completa con formattazione.
Ciao a tutti!
E' il secondo anno di seguito ke utilizzo questo script per il fantacalcio. Lo trovo decisamente utile anche se qualche svista qua e la a livello di sicurezza non lo rende proprio perfetto...ma si vede che con il grande lavoro di Antonello revisione nuova su revisione i miglioramenti avvengono Wink


Dunque, io ho questo problema ke avevo segnalato anche l'anno scorso, non mi era stata data la soluzione e così ho sempre dovuto fare a mano. Quest'anno con la nuova versione credevo che il problema si fosse risolto, invece mi si è ripresentato oggi alla 12esima giornata del mio campionato a 4 squadre.



Il problema è il seguente:
dopo aver caricato il file dei voti ed effettuato il conteggio, mi accorgo ke ciascun giocatore ha i suoi Voti ben messi e la somma è corretta. Il problema è ke i Punteggi della giornata (ossia, giocando a scontri diretti, i punti in classifica che ciascun giocatore va a prendere [3 in caso di vittoria...1 pareggio....]) non vengono calcolati.
Andando a controllare il file della giornata ke è stato riempito (giornata12 nel mio caso) si vede chiaramente che il file è calcolato bene fino a

Codice:
#@& fine formazioni #@&

poi viene inspiegabilmente aggiunta una riga vuota e poi la tag di inizio dei voti, anche lì tutto apposto.
Prima della tag di inizio scontri viene aggiunta anche qui una linea vuota che normalmente non c'è e poi viene subito richiusa la tag scontri sulla linea dopo, senza mettere nessuno scontro.
Infine la tag Punteggi (anch'essa con la sospetta antecedente linea vuota insolita) riempita correttamente con i nomi dei giocatori, ma senza mettere i punteggi.
Ecco la parte finale (diversa dal solito) del file incriminato (giornata12):

Codice:
#@& fine formazioni #@&


#@& voti #@&
Player1##@@&&88
Player2##@@&&78
Player3##@@&&60
Player4##@@&&62
#@& fine voti #@&


#@& scontri #@&
#@& fine scontri #@&


#@& punteggi #@&
Player1##@@&&
Player2##@@&&
Player3##@@&&
Player4##@@&&
#@& fine punteggi #@&


Ed ecco invece quella di un file di una giornata normale (la precedente... giornata11):

Codice:
#@& fine formazioni #@&
#@& voti #@&
Player1##@@&&73.5
Player2##@@&&66
Player3##@@&&59
Player4##@@&&75
#@& fine voti #@&
#@& scontri #@&
Player3##@@&&Player1##@@&&0##@@&&2
Player4##@@&&Player2##@@&&3##@@&&1
#@& fine scontri #@&
#@& punteggi #@&
Player1##@@&&3
Player2##@@&&0
Player3##@@&&0
Player4##@@&&3
#@& fine punteggi #@&



Anche l'anno scorso il campionato era a 4 squadre ed il problema si è presentato diverse volte ma a giornate non vicine.
Quest'anno è la prima volta che succede...ma succederà diverse volte come l'anno scorso sicuramente...
Uso la versione 1.4.4 di fcbazar, ma il file [calcola_punti_giornata.php] che fa il conto dei voti e che genera il file lo ho cambiato oggi stesso (dopo aver riscontrato il problema) e ricalcolando la giornata col nuovo file (dopo aver cancellato il file giornata12..) non è cambiato assolutamente nulla!!
Cosa potrebbe creare questo problema?
Dato che non è mai successo a nessuno (almeno cercando così sembra), credo avvenga esclusivamente per il campionato a scontri diretti con 4 squadre...
Inoltre se copio il file dei voti di questa giornata (MCC16.txt) e lo metto sul server chiamato (MCC17.txt) e poi creo la giornata13 e ricalcolo i voti (quindi stesse formazioni, stesso file voti), tutto fila liscio! I voti vengono calcolati bene e i punteggi questa volta compaiono!!
Quindi è una qualche cosa che abbia a che fare con il numero di giornata 12!


Spero che qualcuno che conosce il codice di fcbazar abbastanza a fondo riesca a capire al volo da cosa dipende il tutto.


P.S. Non credo c'entri nulla, ma prima di questa giornata ho fatto il fantamercato....venduti 1 po di giocatori...comprati altri...ora tt ok...25 giocatori a testa, il file mercato.txt è pulito, senza errori, tutte le aste sono scadute da tempo....lo stato mercato è su C...MAH!!


ILLUMINATEMI!

Ok, mi sono studiato il codice e trovato l'errore!
Il problema è causato dal file crea_giornata.php che è l'incaricato di creare il file giornata** e di riempirlo con le formazioni dei partecipanti e con i dati per gli scontri diretti.
Ciò ke avveniva era ke dalla giornata 12 in poi (procedendo di 6 in 6) la parte degli scontri diretti risultava vuota. Ciò perchè nel file crea_giornata la riga 210 si presentava così:

Codice PHP:
else $num_giornata_campionato $num_giornata_campionato - (floor($num_giornata_campionato/$ultima_giornata)*$ultima_giornata); 

Questa è la riga ke si preoccupava, qualora esaurite le giornate nel file degli scontri diretti, di riportare la giornata numero tot a una di quelle prestabilite. Nel mio caso giocando con 4 squadre, ci sono 6 diverse possibilità di scontri. Esaurite le 6, il numero della giornata, ad esempio 7, tornava ad essere 1, l'8 tornava ad essere 2 e così via, solo ke il 12 invece di tornare ad essere 6, diventava 0:

Cita:
giornata 5 ==> 5
giornata 6 ==> 6
giornata 7 ==> 1
giornata 8 ==> 2
giornata 9 ==> 3
giornata 10 ==> 4
giornata 11 ==> 5
giornata 12 ==> 0
giornata 13 ==> 1

Poichè dall'operazione sopra descritta:

Cita:
12 [$num_giornata campionato] - (floor(12 [$num_giornata_campionato]/6 [$ultima_giornata])*6 [$ultima_giornata])
=
12 - (floor(2)*6)
=
12 - 12
=
0

Ciò mandava in palla tutto perchè ovviamente lo script loopava all'infinito (si fermava dopo 50 tentativi x il blocco messo da Antonello...forse si era accorto del problema da 1 po ma non aveva capito di preciso da cosa fosse causato..) e i dati degli scontri non venivano messi.

Per risolvere il tutto basta modificare il codice soprastante:

Codice PHP:
else $num_giornata_campionato $num_giornata_campionato - (floor($num_giornata_campionato/$ultima_giornata)*$ultima_giornata); 

e farlo diventare:

Codice PHP:
else $num_giornata_campionato $num_giornata_campionato - (floor(($num_giornata_campionato-1)/$ultima_giornata)*$ultima_giornata); 


Sicuramente sarò 1 dei pochi a cui succede perchè molti giocheranno con tante squadre....4 squadre è raro...con 6 squadre ciò avviene ogni 10 giornate (quindi giornata 20, 30, 40....), con 8 squadre ciò avviene ogni 14 (quindi 28, 42...).
Con 4 la frequenza è massima.
Alla prima tornata (es. giornata 6 per 4 squadre) questo problema non accade xkè lo script proprio non arriva alla riga incriminata perchè risolve prima Smile


Spero che Antonello farà questa piccola modifica in modo da impedire ad altri di impazzire km me Toungue
Buon lavoro!

Derevko

Grazie del fix, l'ho inserito su SVN
URL di riferimento