[PHP] Ottimizzazione query

Discussione in 'PHP' iniziata da Max61, 29 Agosto 2019.

  1. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Salve a tutti gli utenti del forum sono nuovamente a chiederVi aiuto.
    Vorrei ottimizzare la query allegata, visto che la devo ripetere per molte variabili, ma non saprei come fare...
    PHP:
    //FINE PRIMO CONTROLLO
    if ($maxpunticoppia1 >= 3500 AND $maxpunticoppia2 <= 3500 AND $maxpunticoppia3 <= 3500 AND $maxpunticoppia4 <= 3500 AND $maxpunticoppia5 <= 3500
    AND $maxpunticoppia1 > $maxpunticoppia2 AND $maxpunticoppia1 > $maxpunticoppia3 AND $maxpunticoppia1 > $maxpunticoppia4 AND $maxpunticoppia1 > $maxpunticoppia5){
        ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";


    } elseif (
    $maxpunticoppia1 >= 3500 AND $maxpunticoppia2 >= 3500 AND $maxpunticoppia3 <= 3500 AND $maxpunticoppia4 <= 3500 AND $maxpunticoppia5 <= 3500
    AND $maxpunticoppia1 $maxpunticoppia2 AND $maxpunticoppia1 $maxpunticoppia3 AND $maxpunticoppia1 $maxpunticoppia4 AND $maxpunticoppia1 $maxpunticoppia5){
        
    ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";


    } elseif (
    $maxpunticoppia1 >= 3500 AND $maxpunticoppia2 >= 3500 AND $maxpunticoppia3 >= 3500 AND $maxpunticoppia4 <= 3500 AND $maxpunticoppia5 <= 3500
    AND $maxpunticoppia1 $maxpunticoppia2 AND $maxpunticoppia1 $maxpunticoppia3 AND $maxpunticoppia1 $maxpunticoppia4 AND $maxpunticoppia1 $maxpunticoppia5){
        
    ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";


    } elseif (
    $maxpunticoppia1 >= 3500 AND $maxpunticoppia2 >= 3500 AND $maxpunticoppia3 >= 3500 AND $maxpunticoppia4 >= 3500 AND $maxpunticoppia5 <= 3500
    AND $maxpunticoppia1 $maxpunticoppia2 AND $maxpunticoppia1 $maxpunticoppia3 AND $maxpunticoppia1 $maxpunticoppia4 AND $maxpunticoppia1 $maxpunticoppia5){
        
    ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";


    } elseif (
    $maxpunticoppia1 >= 3500 AND $maxpunticoppia2 >= 3500 AND $maxpunticoppia3 >= 3500 AND $maxpunticoppia4 >= 3500 AND $maxpunticoppia5 >= 3500
    AND $maxpunticoppia1 $maxpunticoppia2 AND $maxpunticoppia1 $maxpunticoppia3 AND $maxpunticoppia1 $maxpunticoppia4 AND $maxpunticoppia1 $maxpunticoppia5){
        
    ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";


    } elseif (
    $maxpunticoppia1 >= 3500 AND $maxpunticoppia2 >= 3500 AND $maxpunticoppia3 >= 3500 AND $maxpunticoppia4 >= 3500 AND $maxpunticoppia5 >= 3500
    AND $maxpunticoppia1 $maxpunticoppia2 AND $maxpunticoppia1 $maxpunticoppia3 AND $maxpunticoppia1 $maxpunticoppia4 AND $maxpunticoppia1 $maxpunticoppia5){
     
    ?><b><span style='color:purple; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>"$coppia1" e "$coppia2" hanno totalizzato ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti ciascuno. <br>La partita &egrave; pari!!!";
    //FINE PRIMO CONTROLLO
    Grazie per l'aiuto
    Max61
     
  2. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    @Max61 la query dove si trova?

    Eliminando la sfilza di IF, crea un piccolo helper con questo dentro:
    PHP:
    function test_Coppie($data){
       
    $how_to_return='UNDEF';
       foreach (
    $data as $k=>$v){
          
    $entry=true;
          for(
    $i=0;$i<count($v) && $entry;$i++){
             switch (
    $v[$i][1]){
                case 
    '>=':($v[$i][0]<$v[$i][2])?$entry=false:null;
                   break;
                case 
    '<=':($v[$i][0]>$v[$i][2])?$entry=false:null;
                   break;
                case 
    '==':($v[$i][0]!=$v[$i][2])?$entry=false:null;
                   break;
                case 
    '>':($v[$i][0]<$v[$i][2])?$entry=false:null;
                   break;
                case 
    '<':($v[$i][0]>$v[$i][2])?$entry=false:null;
                   break;
             }
          }
          if(
    $entry){
             
    $how_to_return=$k;
          }
       }
       return 
    $how_to_return;
    }
    E lo richiami in questo modo:
    PHP:
    $maxpunticoppia1=3600;
    $maxpunticoppia2=150;
    $maxpunticoppia3=150;
    $maxpunticoppia4=150;
    $maxpunticoppia5=150;
    $maxpunticoppia6=150;
    $coppia1='UNO DUE';
    $coppia2='DUE TRE';
    $coppia3='QUATTRO CINQUE';
    $coppia4='CINQUE SEI';
    $coppia5='SEI SETTE';
    //DATA è l'array da creare
    $data=
       [
          
    'Iterazione1'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'<=',3500],
             [
    $maxpunticoppia3,'<=',3500],
             [
    $maxpunticoppia4,'<=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione2'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'<=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione3'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione4'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'>=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione5'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'>=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'==',$maxpunticoppia5],
          ],
       ];
    echo 
    test_Coppie($data);
    Test_Coppie torna la chiave corrispondente....
     
  3. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ciao Macus_adi, la query sta nella pagina di inserimento dati nel db, una volta inseriti i dati in tabella li recupero e vedo immediatamente il punteggio delle varie coppie, indicando chi vince ed il punteggio.
    Questa codice da richiamare lo metto all'interno della pagina di insert al posto di tutte le if che avevo fatto oppure dentro una pagina a se?
    Grazie
    Max61
     
  4. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Il codice che ti ho messo dovrebbe essere un HELPER quindi un file a parte che viene richiamato dal file delle IF.... In questo modo se devi utilizzare spesso i confronti lo richiami da ogni punto dell'applicazione...
     
  5. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ciao Macus_adi, ho provato a fare come hai detto ho messo la prima parte di codice in una pagina esterna chiamata calcolo5.php e la richiamo come hai detto, però mi da questo errore...dove sbaglio?
    Fatal error: Call to undefined function test_Coppie()
     
  6. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    PHP:
    include_once 'calcolo5.php';

    /**
    *CODICE
    */
    print_r(test_Coppie($data));

     
  7. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ciao Macus_adi, nelle varie prove che ho fatto dopo che ti ho risposto, ho fatto quello che mi hai suggerito adesso, ma questo errore 'UNDEF', perchè non arrivano i nomi delle coppie credo...ma non so come farle avere
    PHP:
    $query3 "SELECT coppia1, coppia2, coppia3, coppia4, coppia5,
    (SUM(basecoppia1) + SUM(punticoppia1)) AS max_punti_coppia1, 
    (SUM(basecoppia2) + SUM(punticoppia2)) AS max_punti_coppia2, 
    (SUM(basecoppia3) + SUM(punticoppia3)) AS max_punti_coppia3, 
    (SUM(basecoppia4) + SUM(punticoppia4)) AS max_punti_coppia4, 
    (SUM(basecoppia5) + SUM(punticoppia5)) AS max_punti_coppia5 
    FROM tblpartite5"
    ;
    $result3 mysql_query($query3);
    if(
    $result3) {
    $row mysql_fetch_array($result3);
    }

    $maxpunticoppia1=$row['max_punti_coppia1'];
    $maxpunticoppia2=$row['max_punti_coppia2'];
    $maxpunticoppia3=$row['max_punti_coppia3'];
    $maxpunticoppia4=$row['max_punti_coppia4'];
    $maxpunticoppia5=$row['max_punti_coppia5'];

    //DATA è l'array da creare
    $data=
       [
          
    'Iterazione1'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'<=',3500],
             [
    $maxpunticoppia3,'<=',3500],
             [
    $maxpunticoppia4,'<=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione2'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'<=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione3'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'<=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione4'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'>=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          
    'Iterazione5'=>[
             [
    $maxpunticoppia1,'>=',3500],
             [
    $maxpunticoppia2,'>=',3500],
             [
    $maxpunticoppia3,'>=',3500],
             [
    $maxpunticoppia4,'>=',3500],
             [
    $maxpunticoppia5,'>=',3500],
             [
    $maxpunticoppia1,'>',$maxpunticoppia2],
             [
    $maxpunticoppia1,'>',$maxpunticoppia3],
             [
    $maxpunticoppia1,'>',$maxpunticoppia4],
             [
    $maxpunticoppia1,'==',$maxpunticoppia5],
          ],
       ];
    print_r(test_Coppie($data));
    allego codice, sicuramente sbaglio qualcosa.
    Grazie
    Max61
     
  8. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Ciao @Max61 ,
    se la funzione torna 'UNDEF' (valore segnato di default, non è errore) significa che nessun array di condizioni (per intenderci "Iterazione1","Iterazione2"....) è completamente soddisfatta, quindi sei fuori dal range dei vincoli imposti.
    Se maxpunticoppia1 <3500 qualsiasi condizione viene ignorata, quindi la funzione torna 'UNDEF'...

    Che valori hai nei vari maxpunticoppia'X'????
    Questo scenario avrà come risposta UNDEF:
    PHP:
    $maxpunticoppia1=3500;
    $maxpunticoppia2=3501;
    $maxpunticoppia3=3502;
    $maxpunticoppia4=3503;
    $maxpunticoppia5=3500;
    In quanto hai settato che maxcoppia1 deve essere sempre maggiore di maxcoppia2-3-4 ....
    Fammi sapere!
     
  9. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ciao e grazie ancora per la disponibilità, cerco di spiegarmi meglio:
    tutti i punteggi ($maxpunticoppia1,$maxpunticoppia2,$maxpunticoppia3, $maxpunticoppia4,$maxpunticoppia5), possono avere qualunque punteggio, quindi può essere maggiore una qualsiasi $maxpunticoppia... rispetto alle altre, possono avere addiritturaa lo stesso punteggio.
    Ti ha tratto inganno il mio codice che ho postato, dove si evidenziava la vittoria o pareggio della $maxpunticoppia1, colpa mia che non l'ho spiegato bene, ma era la prima parte di una serie di if che avrei dovuto applicare per tutte le $maxpunticoppia... e quando ho visto quanto veniva lungo e con possibilità di errore , ho pensato che ci fosse un modo più semplice e ho chiesto aiuto al Forum.
    Grazie e scusa ancora per non essermi spiegato bene
    Max61
     
  10. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Si ma allora basta effettuare le permutazioni dei punteggi all'interno dell'array data...
    Se posti le possibili iterazioni le parametrizziamo in modo del tutto automatico... Basta avere la logica di confronto!
     
  11. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    I possibili punteggi sono tantissimi, adesso non sono al PC ma con il telefono e non mi è facile scrivere tutte le possili variabili. Appena posso li mando
    Grazie mille e buona domenica
     
  12. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Buongiorno Macus_adi, ho cercato di mettere tutti i possibili punteggi
    PHP:
    $maxpunticoppia1>=3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    >=3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    >=3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    >=3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    >=3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    >=3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    >=3500

    PAREGGI
    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    <3500


    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    =3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    =3500

    $maxpunticoppia1
    =3500
    $maxpunticoppia2
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    =3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    <3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    =3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    =3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    <3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    <3500
    $maxpunticoppia3
    =3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    =3500

    $maxpunticoppia1
    <3500
    $maxpunticoppia
    <3500
    $maxpunticoppia3
    <3500
    $maxpunticoppia4
    =3500
    $maxpunticoppia5
    =3500
    spero di non aver dimenticato qualche parametro
    Buona giornata
     
    Ultima modifica di un moderatore: 2 Settembre 2019
  13. macus_adi

    macus_adi Utente Attivo

    Registrato:
    5 Dicembre 2017
    Messaggi:
    965
    Mi Piace Ricevuti:
    56
    Punteggio:
    28
    Sesso:
    Maschio
    Occupazione:
    Developer
    Località:
    L'Aquila
    Inserisci nella variabile "$data" tutti i casi possibili e vedrai che funziona utilizzando lo stesso codice;
     
  14. Max61

    Max61 Utente Attivo

    Registrato:
    2 Marzo 2014
    Messaggi:
    615
    Mi Piace Ricevuti:
    3
    Punteggio:
    18
    Ok, però prima di aggiungere tutti i vari punteggi devo capire come mostrare i vari messaggi che indicano la coppia vincente e in caso di pareggio le coppie che hanno gli stessi punti come facevo nel primo messaggio che ho postato.
    Ho provato ma senza le if mostra tutti i messaggi possibili:
    Vince la coppia Coppia1-coppia1 con 4506 punti.
    La coppia Coppia2-coppia2 si ferma a 4504 punti.
    La coppia Coppia3 si ferma a 4500 punti.
    La coppia Coppia4 si ferma a 4500 punti.
    La coppia Coppia5 si ferma a 4506 punti.

    Coppia1-coppia1 e Coppia5 hanno totalizzato 4506 punti ciascuno.
    La partita è pari!!!
    in questo caso dovrebbe mostrare soltanto il messaggio
    "
    Coppia1-coppia1 e Coppia5 hanno totalizzato 4506 punti ciascuno.
    La partita è pari!!!"
    allego quello che ho fatto, sicuramente sbagliato.
    p.s. in questo caso mostrava il messaggio iterazione5, e quindi ho messo i messaggi nell'iterazione corrispondente
    PHP:
    $data=
       [
          'Iterazione1'=>[
             [$maxpunticoppia1,'>=',3500],
             [$maxpunticoppia2,'<=',3500],
             [$maxpunticoppia3,'<=',3500],
             [$maxpunticoppia4,'<=',3500],
             [$maxpunticoppia5,'<=',3500],
             [$maxpunticoppia1,'>',$maxpunticoppia2],
             [$maxpunticoppia1,'>',$maxpunticoppia3],
             [$maxpunticoppia1,'>',$maxpunticoppia4],
             [$maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          'Iterazione2'=>[
             [$maxpunticoppia1,'>=',3500],
             [$maxpunticoppia2,'>=',3500],
             [$maxpunticoppia3,'>=',3500],
             [$maxpunticoppia4,'<=',3500],
             [$maxpunticoppia5,'<=',3500],
             [$maxpunticoppia1,'>',$maxpunticoppia2],
             [$maxpunticoppia1,'>',$maxpunticoppia3],
             [$maxpunticoppia1,'>',$maxpunticoppia4],
             [$maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          'Iterazione3'=>[
             [$maxpunticoppia1,'>=',3500],
             [$maxpunticoppia2,'>=',3500],
             [$maxpunticoppia3,'>=',3500],
             [$maxpunticoppia4,'>=',3500],
             [$maxpunticoppia5,'<=',3500],
             [$maxpunticoppia1,'>',$maxpunticoppia2],
             [$maxpunticoppia1,'>',$maxpunticoppia3],
             [$maxpunticoppia1,'>',$maxpunticoppia4],
             [$maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          'Iterazione4'=>[
             [$maxpunticoppia1,'>=',3500],
             [$maxpunticoppia2,'>=',3500],
             [$maxpunticoppia3,'>=',3500],
             [$maxpunticoppia4,'>=',3500],
             [$maxpunticoppia5,'>=',3500],
             [$maxpunticoppia1,'>',$maxpunticoppia2],
             [$maxpunticoppia1,'>',$maxpunticoppia3],
             [$maxpunticoppia1,'>',$maxpunticoppia4],
             [$maxpunticoppia1,'>',$maxpunticoppia5],
          ],
          'Iterazione5'=>[
             [$maxpunticoppia1,'>=',3500],
             [$maxpunticoppia2,'>=',3500],
             [$maxpunticoppia3,'>=',3500],
             [$maxpunticoppia4,'>=',3500],
             [$maxpunticoppia5,'>=',3500],
             [$maxpunticoppia1,'>',$maxpunticoppia2],
             [$maxpunticoppia1,'>',$maxpunticoppia3],
             [$maxpunticoppia1,'>',$maxpunticoppia4],
             [$maxpunticoppia1,'==',$maxpunticoppia5],
              ],
       ];
             ?><b><span style='color:green; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>Vince la coppia "$coppia1" con ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia2" si ferma a ";
    echo 
    $maxpunticoppia2// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia3" si ferma a ";
    echo 
    $maxpunticoppia3// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia4" si ferma a ";
    echo 
    $maxpunticoppia4// <- qui hai il risultato che ti aspetti
    echo " punti.";
    ?><b><span style='color:red; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
    echo "<br><H4>La coppia "$coppia5" si ferma a ";
    echo 
    $maxpunticoppia5// <- qui hai il risultato che ti aspetti
    echo " punti.";
     
         
    ?><b><span style='color:purple; font-size: 16pt'>
             <span style='color:white height:1; width:1; background-color:red'>
             <?php
        
    echo "<br><H3>"$coppia1" e "$coppia5" hanno totalizzato ";
    echo 
    $maxpunticoppia1// <- qui hai il risultato che ti aspetti
    echo " punti ciascuno. <br>La partita &egrave; pari!!!";
    //print_r(test_Coppie($data));
     
    Ultima modifica: 2 Settembre 2019
Sto caricando...

Condividi questa Pagina