[PHP] Recuperare coppia con valori i valori MAX e coppia con valori MIN

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio
Ciao Marino51, adesso penso di aver capito il tuo codice e se non sbaglio non è previsto il pareggio a parità di punti fatti che avrà 'zero' come punteggio nei campi ScA o ScB...ho capito bene?
PHP:
UPDATE @smazzate SET
  RcA = case
        when ScA > ScB then 1
        else -1
        end
, RcB = case
        when ScB > ScA then 1
        else -1
        end
 
" 'zero' come punteggio nei campi ScA o ScB "
no in ScA e ScB saranno sempre presenti i valori totalizzati dalle coppie,
in caso di parità verrà assegnato -1 al risultato ( R ) ad entrambe le coppie, salvo modificare la query che calcola il punteggio finale della smazzata
ma puoi mettere un uguale oltre al segno di maggiore e verrà assegnato 1 anche in caso di parità, ad entrambe le coppie

penso tu abbia potuto capire che nella tabella "smazzate" vi sono presenti, per ciascuna smazzata,
i 4 giocatori ( c = coppia, g = giocatore )
i punti ( P ) realizzati da ciascun giocatore
la somma ( S ) dei punti realizzati da ciascuna coppia
il valore +1 o -1 ( R ) risultante dal confronto (vedi query ultima che hai postato UPDATE @smazzate SET …. )

seguono le insert che ho utilizzato per inserire i valori di prova

segue la query per calcolare i punti di coppia, valori sempre presenti in ScA e ScB

quindi la query per calcolare il punteggio da attribuire ( +1 o -1, lasciando zero in parità )

ed infine la query per calcolare la somma finale dei giocatori


se hai dei dati di prova e li metti a disposizione posso rifare il calcolo con questi, in modo da controllare se la tua aspettativa é soddisfatta
 
Ultima modifica:
Ciao MAx61
ilcodice l'ho provato anche io pirma di postarlo e i risultati che ottengo sono i segunti:

punti_giocatore_1: 500
punti_giocatore_2: 1000
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 1000 (g1 - g3)
punteggio coppiaB: 2000 (g2 - g4)

G1 = -1
G3 = -1
G2 = 1
G4 = 1

---

punti_giocatore_1: 500
punti_giocatore_2: 1000
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 1500 (g1 - g2)
punteggio coppiaB: 1500 (g3 - g4)
patta

-----

punti_giocatore_1: 500
punti_giocatore_2: 1000
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 1500 (g1 - g4)
punteggio coppiaB: 1500 (g2 - g3)
patta

-----

punti_giocatore_1: 500
punti_giocatore_2: 1000
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 1000 (g1 - g3)
punteggio coppiaB: 2000 (g2 - g4)

G1 = -1
G3 = -1
G2 = 1
G4 = 1

-----

punti_giocatore_1: 1000
punti_giocatore_2: 500
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 1500 (g1 - g2)
punteggio coppiaB: 1500 (g3 - g4)
patta

-----

punti_giocatore_1: 1000
punti_giocatore_2: 500
punti_giocatore_3: 500
punti_giocatore_4: 1000

punteggio coppiaA: 2000 (g1 - g4)
punteggio coppiaB: 1000 (g2 - g3)

G1 = 1
G4 = 1
G2 = -1
G3 = -1

-----

a me non sembrano errati.
Questa una schermata dei dati insriti nel db; ogni riga corrisponde ad una partita e di conseguenza ad una variante delle coppie...

Schermata DBpartite.jpg
 
Intanto Vi devo ringraziare per la Vostra disponibilità, di questi tempi dote NON comune a molti.
Marino51, provo a mettere >= nella query e faccio simulazioni

Mr.X, probabilmente mi sono sbagliato, ricontrollo...

Grazie di nuovo per la Vostra Pazienza
Max61
 
Scusami Marino51, mio sto perdendo ho provato a fare una pagina php con il tuo codice di insert, ma inserisce 3 record alla volta?
allego query
PHP:
$query_insert = "INSERT INTO smazzate(smazzata, cAgA, cAgB, cBgA, cBgB, PcAgA, PcAgB, PcBgA, PcBgB, ScA, ScB, RcA, RcB)
SELECT 1, '$cAgA', '$cAgB', '$cBgA', '$cBgB', '$PcAgA', '$PcAgB', '$PcBgA', '$PcBgB', '$ScA', '$ScB', '$RcA', '$RcB' UNION ALL
SELECT 2, '$cAgA', '$cBgA', '$cAgB', '$cBgB', '$PcAgA', '$PcAgB', '$PcBgA', '$PcBgB', '$ScA', '$ScB', '$RcA', '$RcB' UNION ALL
SELECT 3, '$cAgA', '$cBgB', '$cAgB', '$cBgA', '$PcAgA', '$PcAgB', '$PcBgA', '$PcBgB', '$ScA', '$ScB', '$RcA', '$RcB'";
ho provato così ma non inserisce il numero di smazzata
PHP:
$query_insert = "INSERT INTO smazzate(smazzata, cAgA, cAgB, cBgA, cBgB, PcAgA, PcAgB, PcBgA, PcBgB, ScA, ScB, RcA, RcB)
                VALUES ('$smazzata', '$cAgA', '$cAgB', '$cBgA', '$cBgB', '$PcAgA', '$PcAgB', '$PcBgA', '$PcBgB', '$ScA', '$ScB', '$RcA', '$RcB')";
 
la mia query é fatta per inserire un esempio costituito da 3 smazzate,

la pagina per inserire manualmente le smazzate probabilmente andrà fatta inserendone 1 per volta
in questo caso la insert dovrebbe essere
Codice:
$query_insert = "INSERT INTO smazzate(smazzata, cAgA, cAgB, cBgA, cBgB, PcAgA, PcAgB, PcBgA, PcBgB, ScA, ScB, RcA, RcB)
                 VALUES ('$smazzata', '$cAgA', '$cAgB', '$cBgA', '$cBgB', $PcAgA, $PcAgB, $PcBgA, $PcBgB, 0, 0, 0, 0)";
se non la inserisce forse c'é un errore, verifica i nomi nella tabella del db che devono corrispondere con quelli della insert

eventualmente posta l'errore
 
Sembra che funzioni tutto, userò i codici sia di Marino51 che di Mr.X, uno lo utilizzo per inserire nel db i risultati e l'altro per averli a video immediatamente.
Grazie infinite per la pazienza
Max61;)
 

Discussioni simili