• User Newbie

    PHP Classifica calcio

    Salve a tutti, lieto di scrivere x la prima volta su questo forum.
    Fino ad oggi ho frequentato soltanto il forum di html.it, ma ho notato che quì ci sono molte + pillole interessanti sul linguaggio php cui detesto colui che lo ha inventato quando uno script mi da errore e lo lodo quando invece diversamente funziona!

    Andiamo al dunque. Stò gestendo un sito calcistico locale, e non riesco a programmare uno script decente x gestire le classifiche. Ho pensato ad un database ke contenga il calendario delle giornate con tutte le squadre, e magari una pagina php associata dove andare inserendo via via i risultati. Il fatto è, come potrete vedere poi voi da link ke vi incollerò in basso, che bisognerebbe calcolare ovviamente i gol fatti e subiti, le giornate, i punti nella classifica, e a lato risultati ultimo turno, e prossimo turno. Voi come lo progettereste? Grazie a tutti anticipatamente.

    http://terrasiniweb.no-ip.info/ascittaditerrasini.it/phpnews/home.php


  • Super User

    ciao terrasiniweb e benvenuto sul forum 🙂

    non ho capito bene quello che chiedi. vorresti fare insieme l'analisi del problema?
    purtroppo sono l'antitesi dell'appassionato di calcio quindi non conosco le regole che muovono questo sport.

    se vuole partecipare qualcuno a questa analisi bene altrimenti prova a spiegarmi le regole (come se lo facessi ad un bambino, anzi no lui conosce il calcio 😛 come se lo spiegassi ad una ragazza) e vediamo se riesco ad aiutarti.


  • User Newbie

    Yesss, dunque.
    Il link sopra è adesso funzionante. Nella pagina in cui indirizza potrai o potrete vedere in fondo una classifica e i dati riguardanti l'ultimo turno delle partite giocato nonchè il prossimo turno degli incontri della prossima giornata di campionato.
    Ora, serve una pagina collegata magari ad un database, ma si potrebbe anche non utilizzarlo, che gestisca questi dati! Il lavoro dello script deve essere:

    1. Collocazione dei punteggi dell'ultimo turno di campionato giocato;
    2. Collocazione delle squadre del prossimo turno, quindi prossimi incontri che ci saranno la settimana prossima o il giorno in cui sarà;
    3. Calcolo automatico della classifica, ogni 3 punti a chi vince, 1 a chi pareggia e 0 a chi perde, nonché calcolo degli incontri giocati fino ad ora (partite giocate), incontri vinti, persi o pareggiati (nulli), ed infine gol fatti e gol subiti!
      Mi sembra di essere stato + escplicito. Per vedere la pagina clicca il link nel mio precedente intervento. Ciao e grazie. 😉

  • User Attivo

    dunque... non sono un super esperto, ma spero di poter essere utile...

    problema 1) credo si possa fare una cosa del genere:

    calcolaRisultato($golPrimaSquadra,$golSecondaSquadra){
    punteggi= array("puntiPrimaSquadra"=>0,"puntiSecondaSquadra"=>0);
    //verifichi quale squadra ha fatto più gol o se hanno pareggiato
    if($golPrimaSquadra>$golSecondaSquadra){
    punteggi["puntiPrimaSquadra"]=3;
    }
    //e così via per gli altri possibili risultati....

    return risultati;
    }

    poi ti chiami questa funzione aggiungendo i punti ottenuti a quelli della classifica (puoi anche prenderti questa variabile dal database, volendo...)

    sicuramente ci sono altri metodi molto migliori ma al momento mi è venuto questo...

    problema 2) se tu ti salvi in un database il calendario, puoi caricare nella tabella tutti i dati senza tanti problemi, basta che tu ti scorra l'array inserendo ogni squadra nella propria cella.
    Potresti caricare i dati nel db in questo modo. In un campo, metti:
    squadra1-avversaria, squadra3-avversaria, ecc...
    e in un altro metti la data delle partite, es:
    03/10/2006
    poi quando fai la query, prendi dal db le partite relative alla data corrente, ad esempio, o alla data di qualche giorno successivo, ed usi la funzione explode(); per dividerti la lunga stringa relativa alle partite ed ottenere un array di questo tipo:
    array[0]="squadra1-avversaria"
    array[1]="squadra3-avversaria", ecc...
    a questo punto ti inserisci il tutto nella tabella ed il gioco è fatto...
    problema 3)
    puoi mantenerti tutti questi dati nel database per ogni squadra con una tabella di questo tipo:
    nomesquadra, punteggioClassifica, golFatti, golSubiti, incontriDisputati

    poi per ogni squadra chiami tutta una serie di funzioni che ti aggiornino tutti i dati dopo ogni giornata!

    se poi hai altri problemi più specifici, facci sapere... spero di esserti stato utile! 🙂


  • User Newbie

    Benissimo, direi che è da provare. Studio questa tua proposta e ti faccio sapere. Grazie 2 mila! 😉


  • User Newbie

    mmmm restano alcuni dubbi. Ho realizzato un database che riceve i dati da un form, sui risultati dell'ultima giornata. I dati vengono inseriti nel database con il seguente codice:
    [php]
    <?php
    include('config.php');
    $giornata=$_POST['giornata'];
    $squadra1=$_POST['squadra1'];
    $squadra2=$_POST['squadra2'];
    $squadra3=$_POST['squadra3'];
    $squadra4=$_POST['squadra4'];
    $squadra5=$_POST['squadra5'];
    $squadra6=$_POST['squadra6'];
    $squadra7=$_POST['squadra7'];
    $squadra8=$_POST['squadra8'];
    $squadra9=$_POST['squadra9'];
    $squadra10=$_POST['squadra10'];
    $squadra11=$_POST['squadra11'];
    $squadra12=$_POST['squadra12'];
    $squadra13=$_POST['squadra13'];
    $squadra14=$_POST['squadra14'];
    $squadra15=$_POST['squadra15'];
    $squadra16=$_POST['squadra16'];
    $ris1=$_POST['ris1'];
    $ris2=$_POST['ris2'];
    $ris3=$_POST['ris3'];
    $ris4=$_POST['ris4'];
    $ris5=$_POST['ris5'];
    $ris6=$_POST['ris6'];
    $ris7=$_POST['ris7'];
    $ris8=$_POST['ris8'];
    $ris9=$_POST['ris1'];
    $ris10=$_POST['ris10'];
    $ris11=$_POST['ris11'];
    $ris12=$_POST['ris12'];
    $ris13=$_POST['ris13'];
    $ris14=$_POST['ris14'];
    $ris15=$_POST['ris15'];
    $ris16=$_POST['ris16'];
    $mysql_query = "INSERT INTO $giornata (squadra1, squadra2, squadra3, squadra4, squadra5, squadra6, squadra7, squadra8, squadra9, squadra10, squadra11, squadra12, squadra13, squadra14, squadra15, squadra16, ris1, ris2, ris3, ris4, ris5, ris6, ris7, ris8, ris9, ris10, ris11, ris12, ris13, ris14, ris15, ris16) VALUES ('$squadra1', '$squadra2', '$squadra3', '$squadra4', '$squadra5', '$squadra6', '$squadra7', '$squadra8', '$squadra9', '$squadra10', '$squadra11', '$squadra12', '$squadra13', '$squadra14', '$squadra15', '$squadra16', '$ris1', '$ris2', '$ris3', '$ris4', '$ris5', '$ris6', '$ris7', '$ris8', '$ris9', '$ris10', '$ris11', '$ris12', '$ris13', '$ris14', '$ris15', '$ris16')";
    if (mysql_query($mysql_query, $db))
    echo "I risultati sono stati inseriti correttamente";
    else
    echo "Errore durante l'inserimento";
    ?>
    [/php]

    Dove da squadra1 a squadra 16 le formazioni che si scontrano in ogni singola giornata, e da ris1 a ris16 le reti che da essi scaturiscono per entrambe le squadre.
    Dopodichè ho realizzato un database in questo modo:
    30 tabelle ke contengano le 30 giornate del campionato con le squadre (i nomi di esse) che si scontrano ed i rispettivi risultati, più la 31esima tabella ke contenga la classifica, con colonne i 16 id correspondenti alle squadre, il loro nome, i punti realizzati, le partite vinte, perse e pareggiate.
    Ora, come realizzo il codice di visualizzazione? E soprattutto, come faccio le operazioni di somma dei 3 punti, di 1 punto o di 0 a dipendenza del risultato effettuato?

    Vi ricordo che dovrebbe essere visualizzata soltanto l'ultima giornata di campionato, + la classifica fino a questo momento. Fatemi sapere. Grazie 3 mila dell'aiuto! 😉


  • User Attivo

    per il codice di visualizzazione, è un po' complesso... potresti fare una query e prenderti tutti i dati che ti servono in una volta, poi creare una tabella ed inserire in ogni riga i dati che ti servono... esempio: while ($riga=mysql_fetch_array($risultati)) { $riga['squadra1']$riga['squadra2'] } ecc... in realtà tu in questo modo avresti una sola riga, quindi ti verrebbe un po' complesso... ti converrebbe avere nella tabella in ogni riga le due squadre che si scontrano! ti fai una tabella per ogni giornata, poi come dati metti squadraInCasa, squadraFuoricasa, risultato, ecc... mi sembra che in questo modo sia poi più semplice organizzare il tutto. per quanto riguarda il punteggio, te l'avevo già messo lo schema... fai una funzione che si prenda come parametro il risultato, capisce quanti punti deve assegnare ad ogni squadra e li restituisce come return. a questo punto sommi al punteggio di classifica il punteggio della giornata e ci sei!