[PHP] Ottimizzazione query

  • Creatore Discussione Creatore Discussione Max61
  • Data di inizio Data di inizio

Max61

Utente Attivo
2 Mar 2014
760
4
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
 
@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....
 
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
 
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...
 
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()
 
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
 
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.
$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'];

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!
 
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
 
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!
 
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
 
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:
Inserisci nella variabile "$data" tutti i casi possibili e vedrai che funziona utilizzando lo stesso codice;
 
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:

Discussioni simili