Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    Questa è la query attuale che assegna le giornate...
    Ma non funziona perché salta alcune giornate. L'assegnazione è casuale quindi non posso dire quale combinazioni salta

    codice:
    'Controllo che per ogni giornata ci siano tutte partite
    Do While not Fine = 1
       'Recupero tutte le giornate che non hanno tutte le partite 
       MySql = "SELECT NumGiornata FROM NumeroGiornate WHERE NumGiornata < " & MaxSquadre & " "
       MySql = MySql & "AND NumGiornata NOT IN (SELECT NumGiornata FROM CampionatiCalendario Where IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " GROUP BY NumGiornata, IdCampionato, IdGirone HAVING Count(IDSquadra1) = " & Int(CInt(MaxSquadre) / 2) & " AND IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & ") "
       MySql = MySql & "ORDER BY NumGiornata "
       Rs.Open MySql, Conn
       
       IF not Rs.Eof Then
          Rs.MoveFirst
          Do While not Rs.Eof
             'Recupero la partita mancante
              MySql = "SELECT TOP 1 * FROM CampionatiCalendario "
              MySql = MySql & " WHERE IdSquadra1 NOT IN (SELECT IdSquadra1 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra1)"
              MySql = MySql & " AND IdSquadra1 NOT IN (SELECT IdSquadra2 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra2)"
              MySql = MySql & " AND IdSquadra2 NOT IN (SELECT IdSquadra1 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra1)"
              MySql = MySql & " AND IdSquadra2 NOT IN (SELECT IdSquadra2 FROM CampionatiCalendario WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND NumGiornata = " & Rs("NumGiornata") & " GROUP BY IdSquadra2)"
              MySql = MySql & " ORDER BY NumGiornata, IdSquadra2, IdSquadra1 "
              Rs2.Open MySql, Conn
              
              IF not Rs2.Eof Then
                 'Aggiorno la giornata
                 MySql = "UPDATE CampionatiCalendario SET "
                 MySql = MySql & "NumGiornata = " & Rs("NumGiornata") & " "
                 MySql = MySql & "WHERE IdCampionato = " & CmbCampionato & " AND IdGirone = " & CmbGirone & " AND IdSquadra1 = " & Rs2("IdSquadra1") & " AND IdSquadra2 = " & Rs2("IdSquadra2")
                 Conn.Execute MySql
              End IF
              Rs2.Close
              
              Rs.MoveNext
          Loop
       Else
          'Fine ciclo
          Fine = 1
       End IF
       Rs.Close
    Loop

  2. #12
    Accidenti... non semplice da analizzare.
    Se non ricordo male dovrebbe essere successo anche a me una cos del genere, però non ricordo bene come sono riuscito a risolvere la cosa (con VB6 comunque). A me succedeveva na come se i tempi di esecuzione fossero stati troppo brevi. Infatti se eseguivo passo per passo eseguiva tutto, mentre lasciandolo andare saltava qualcosa. E se non ricordo male c'era qualcosa che non andava nella query
    io farei na prova del genere... immagino sia in asp quel codice.
    prova a far scrivere a video le query con response.write senza farla eseguire (commenti "Rs2.Open MySql, Conn" e l'altra).
    Forse magari ti salta all'occhio qualcosa.
    E' un tentativo che proverei.
    Ciao!
    Lucio Ghirardo

    www.lucioghirardo.it
    www.bulliebike.it
    www.gsveternigocalcio.com

  3. #13
    Non so se può esserti utile ma comunque a questo link http://pialbo.altervista.org/creacalendario.htm trovi un programma con cui puoi creare il tuo calendario delle partite per un torneo di calcetto, un fantacalcio o qualsiasi altro torneo che devi disputare.
    Tale programmino può generare un calendario per un campionato da 2 a 20 squadre.

  4. #14
    Ti ringrazio. Ho visto su un altro sito la creazione del calendario e mi sono creato un algoritmo matematico che vada bene per qualsiasi caso.

  5. #15
    Ciao, scusa se riapro la discussione, ma avendo la tua stessa necessità, potresti indicarmi dove hai trovato l'algoritmo di cui parli? O magari postarlo o che altro?

    Grazie e ciao.

  6. #16

  7. #17
    niprova, scusa, ma mi sati perseguitando!

    Non ho possibilità, né intenzione di pagare 1200 euro per qualcosa che devo usare amatorialmente! (passami il termine).
    In qualsiasi forum abbia scritto sono sato costretto a rispondere alla tua pubblicità!

    Allora, se vuoi aiutarmi, ti sarei molto grado se mi supporti con qualche esempio (anche solo sulla logica da usare); al contrario se vuoi "vendermi" un prodotto allora ti rispondo che grazie, ma non sono interessato.

  8. #18
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    7

    e

    io ed un mio amico abbiamo fatto cosi

    è abbastanza semplice e questo script ti genera solo l'andata..

    basta eseguirlo due volte o mettere due campi nel db in mofo che il sistema svolga il match due volte ed è apposto


    par = npartecipanti-1
    tur = (npartecipanti/2)-1
    Execute "dim ruota("&npartecipanti&")"



    t = 0
    for aaa = 0 to par-1
    t = t +1
    response.Write("
    <table width=""400"" border=""1"">")
    For i = 0 to tur
    response.Write("<tr><td>"&partecipanti(i)&"("&i&") </td><td> "&t&" </td><td>"&partecipanti(par-i)&"("&par-i&")</td></tr>")
    Conn.Execute("INSERT Lega_turni SET id_Lega ="&Request("Lega")&", turno = "&t&", partecipante1 = '"&partecipanti(i)&"', partecipante2 = '"&partecipanti(par-i)&"'")

    Next
    response.Write("</table>")
    Call ruota_array

    next

    Sub ruota_array()
    dim tempo
    tempo = partecipanti(1)
    for b = 1 to par-1
    partecipanti(b) = partecipanti(b+1)
    next
    partecipanti(par) = tempo
    End Sub

    io lo uso con leghe da 300 squadre..
    unico problema ^^
    ho dovuto evitare di fargli stampare le giornate tutte assieme ^^ altrimenti si saturava il buffer..

    cmq è molto semplice come gli algoritmi di generazione dei calendari una resta ferma e le altre squadre ruotano generando cosi il calendario

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.