Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    controllo if elseif non funziona

    ciao e ringrazio in anticipo tutti voi che risponderete a questa discussione.
    vi spiego subito il mio problema che non riesco a risolvere,ho provato in vari modi e proprio non riesco a risolvere.
    ho questa pagina dove l'utente deve creare la propria formazione tramite questo form,e stato creato un conteggio automatico in javascript con il limite a 250 con un avviso di superamento ,ora vorrei farlo anche in php e se superato non puo registrare la formazione nel db .


    il controllo a cui mi riferisco inizia cosi
    Codice PHP:
    if(isset($_POST['crea_formazione'])){                   extract($_POST); 
    qui c'e il codice completo potete dare un occhiata e dirmi dove sbaglio.


    Codice PHP:
    <?php $sql "SELECT * FROM portieri ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $portiere[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}
    $sql "SELECT * FROM difensori ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $difensore[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}
    $sql "SELECT * FROM centrocampisti ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $centrocampista[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}
    $sql "SELECT * FROM attaccanti ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $attaccante[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}?>   <?php   //$q = "SELECT id_utente FROM formazione WHERE id_utente=".$_SESSION['auth'];  // var_dump($q); echo "<br>";//verifiche che venga come vuoi che venga //$ris=mysql_query($q); //var_dump($q); echo "<br>";   if(mysql_num_rows(mysql_query("SELECT id_utente FROM formazione WHERE id_utente=".$_SESSION['auth'])) > 0){     //l'utente ha già inserito e rimandi dove vuoi     echo "<div id='con_formazione'>hai gia creato la formazione. <a href='rosa.php'>visualizza</a></div>";}else{     //fai vedere il form per fare l'inserimento      ?>      <form id="articoli" name="giocatori" method="POST" action="<?php echo $_SERVER["PHP_SELF"] ;  ?>">     <div id="punti_1">  <span>Punti</span>            <div id="punti">      
          </div><!--fine div punti-->            </div>       <div id="con_formazione">     <?php     if(isset($_POST['crea_formazione'])){                   extract($_POST);                              $id_utente $_SESSION['auth'];        $risultato$portiere1 $portiere2 $portiere3 $difensore1 $difensore2 $difensore3 $difensore4 $difensore5 $difensore6 $difensore7 $difensore8 $centrocampista1 $centrocampista2 $centrocampista3 $centrocampista4 $centrocampista5 $centrocampista6 $centrocampista7 $centrocampista8 $attaccante1 $attaccante2 $attaccante3 $attaccante4 $attaccante5 $attaccante6;    if(empty($portiere1) && empty($portiere2) && empty($portiere3) && empty($difensore1) && empty($difensore2) && empty($difensore3) && empty($difensore4) && empty($difensore5) && empty($difensore6) && empty($difensore7) && empty($difensore8) && empty($centrocampista1) && empty($centrocampista2) && empty($centrocampista3) && empty($centrocampista4) && empty($centrocampista5) && empty($centrocampista6) && empty($centrocampista7) && empty($centrocampista8) && empty($attaccante1) && empty($attaccante2) && empty($attaccante3) && empty($attaccante4) && empty($attaccante5) && empty($attaccante6)) {        echo 'La formazione non e completa. <a href="javascript:history.back();">indietro</a>';                }elseif($risultato 250){                    echo 'hai superato i 250 fantamilioni disponibili per creare la tua formazione, effettua le dovute modifiche ho non potrai registrare la tua formazione. <a href="javascript:history.back();">modifica</a>';                }else if(mysql_query("INSERT INTO formazione (id_utente, portiere1, portiere2, portiere3, difensore1, difensore2, difensore3, difensore4, difensore5, difensore6, difensore7, difensore8, centrocampista1, centrocampista2, centrocampista3, centrocampista4, centrocampista5, centrocampista6, centrocampista7,  centrocampista8, attaccante1, attaccante2, attaccante3, attaccante4, attaccante5, attaccante6) VALUES ('$id_utente','$portiere1','$portiere2','$portiere3','$difensore1','$difensore2','$difensore3','$difensore4','$difensore5','$difensore6','$difensore7','$difensore8','$centrocampista1','$centrocampista2','$centrocampista3','$centrocampista4','$centrocampista5','$centrocampista6','$centrocampista7','$centrocampista8','$attaccante1','$attaccante2','$attaccante3','$attaccante4','$attaccante5','$attaccante6')" ) or die (mysql_error())){                        echo "formazione creata con successo. <a href='rosa.php'>visualizza</a>";                            }                         }            ?>           </div>        <label>Portieri</label>     <select  onchange="calcolaPunti();" name="portiere1">    <option value="0">seleziona giocatore</option>         <?php        foreach ($portiere as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>
        <select onchange="calcolaPunti();" name="portiere2">    <option value="0">seleziona giocatore</option>          <?php        foreach ($portiere as $calciatore => $value) {            echo"<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="portiere3">    <option value="0">seleziona giocatore</option>         <?php        foreach ($portiere as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>         <label>Difensori</label>          <select  onchange="calcolaPunti();" name="difensore1">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>
        <select onchange="calcolaPunti();" name="difensore2">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="difensore3">     <option value="0">seleziona giocatore</option>        <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>          <select  onchange="calcolaPunti();" name="difensore4">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>
        <select onchange="calcolaPunti();" name="difensore5">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="difensore6">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="difensore7">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="difensore8">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>        <label>Centrocampisti</label>        <select onchange="calcolaPunti();" name="centrocampista1">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista2">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista3">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista4">     <option value="0">seleziona giocatore</option>        <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista5">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista6">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista7">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="centrocampista8">    <option value="0">seleziona giocatore</option>         <?php        foreach ($centrocampista as $calciatore  => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>         <label>Attaccanti</label>          <select onchange="calcolaPunti();" name="attaccante1">      <option value="0">seleziona giocatore</option>        <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="attaccante2">    <option value="0">seleziona giocatore</option>         <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="attaccante3">    <option value="0">seleziona giocatore</option>         <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="attaccante4">    <option value="0">seleziona giocatore</option>         <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="attaccante5">    <option value="0">seleziona giocatore</option>         <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>    <select onchange="calcolaPunti();" name="attaccante6">    <option value="0">seleziona giocatore</option>         <?php        foreach ($attaccante as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    </select>                   <input  type="submit" name="crea_formazione" value="Crea Formazione" >          <input  type="reset" name="cancella" value="Cancella" > 
                                </form>
      <?php            }//fine sessione
      
    ?>     </div><!-- fine div crea rosa-->

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    impagina bene il codice e spiega dove fai il controllo (ci ho provato, ma non l'ho trovato)

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quando vedo un codice come il tuo sono sicuro che si puo' renderlo molto più semplice. Sei arrivato ad un tale livello di complessità che impedisce di capirlo facilmente e peggio di poterlo farlo evolvere.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao, personalmente non ho capito quali problemi riscontri.

    Noto giusto un probabile errore nella logica del funzionamento quando controlli le variabili con empty().
    Non dovresti usare OR (||) anziché AND (&&)?
    Una cosa del genere:
    Codice PHP:
    if(empty($portiere1) || empty($portiere2) || empty($portiere3ecc..) {echo 'La formazione non è completa';} 
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    il problema e che anche se supera i 250 esegue l'inserimento nel db e non dovrebbe inserire niente nel db,se cambio il segno > con < mi visualizza il messaggio di errore scritto da me e non esegue l'inserimento.
    posto di nuovo il codice
    Codice PHP:

    <?php $sql "SELECT * FROM portieri ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $portiere[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}

    $sql "SELECT * FROM difensori ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $difensore[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}

    $sql "SELECT * FROM centrocampisti ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $centrocampista[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}

    $sql "SELECT * FROM attaccanti ORDER BY calciatore";$result mysql_query($sql);$prodotti = array();while ($row mysql_fetch_array($result)) {    $attaccante[$row["calciatore"]] = $row["calciatore"] . " - " $row["costo"] . " - ( " $row["squadra"] . " ) ";}?>  

     <?php  
     
    if(mysql_num_rows(mysql_query("SELECT id_utente FROM formazione WHERE id_utente=".$_SESSION['auth'])) > 0){     //l'utente ha già inserito e rimandi dove vuoi     
    echo "<div id='con_formazione'>hai gia creato la formazione. <a href='rosa.php'>visualizza</a></div>";}
    else{     
    //fai vedere il form per fare l'inserimento      ?>      <form id="articoli" name="giocatori" method="POST" action="<?php echo $_SERVER["PHP_SELF"] ;  ?>">     <div id="punti_1">  <span>Punti</span>            <div 
    id="punti">             </div><!--fine div punti-->            </div>       <div id="con_formazione">     <?php     


    if(isset($_POST['crea_formazione'])){    
                   
    extract($_POST);                             
     
    $id_utente $_SESSION['auth'];   
     
    $risultato$portiere1 $portiere2 $portiere3 $difensore1 $difensore2 $difensore3 $difensore4 $difensore5 $difensore6 $difensore7 $difensore8 $centrocampista1 $centrocampista2 $centrocampista3 $centrocampista4 $centrocampista5 $centrocampista6 $centrocampista7 $centrocampista8 $attaccante1 $attaccante2 $attaccante3 $attaccante4 $attaccante5 $attaccante6;  

      if(empty(
    $portiere1) && empty($portiere2) && empty($portiere3) && empty($difensore1) && empty($difensore2) && empty($difensore3) && empty($difensore4) && empty($difensore5) && empty($difensore6) && empty($difensore7) && empty($difensore8) && empty($centrocampista1) && empty($centrocampista2) && empty($centrocampista3) && empty($centrocampista4) && empty($centrocampista5) && empty($centrocampista6) && empty($centrocampista7) && empty($centrocampista8) && empty($attaccante1) && empty($attaccante2) && empty($attaccante3) && empty($attaccante4) && empty($attaccante5) && empty($attaccante6)) {   

         echo 
    'La formazione non e completa. <a href="javascript:history.back();">indietro</a>';    

                }elseif(
    $risultato 250){   

                     echo 
    'hai superato i 250 fantamilioni disponibili per creare la tua formazione, effettua le dovute modifiche ho non potrai registrare la tua formazione. <a href="javascript:history.back();">modifica</a>';                }else 

    if(
    mysql_query("INSERT INTO formazione (id_utente, portiere1, portiere2, portiere3, difensore1, difensore2, difensore3, difensore4, difensore5, difensore6, difensore7, difensore8, centrocampista1, centrocampista2, centrocampista3, centrocampista4, centrocampista5, centrocampista6, centrocampista7,  centrocampista8, attaccante1, attaccante2, attaccante3, attaccante4, attaccante5, attaccante6) VALUES 
    ('
    $id_utente','$portiere1','$portiere2','$portiere3','$difensore1','$difensore2','$difensore3','$difensore4','$difensore5','$difensore6','$difensore7','$difensore8','$centrocampista1','$centrocampista2','$centrocampista3','$centrocampista4','$centrocampista5','$centrocampista6','$centrocampista7','$centrocampista8','$attaccante1','$attaccante2','$attaccante3','$attaccante4','$attaccante5','$attaccante6')" ) or die (mysql_error())){                        echo "formazione creata con successo. <a href='rosa.php'>visualizza</a>"
                               }                         }    
            
    ?>          
     </div>        

    <label>Portieri</label>    
     <select  onchange="calcolaPunti();" name="portiere1">    <option value="0">seleziona giocatore</option>         <?php        foreach ($portiere as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>   
     </select>
        <select onchange="calcolaPunti();" name="portiere2">    <option value="0">seleziona giocatore</option>          <?php        foreach ($portiere as $calciatore => $value) {            echo"<option value='$calciatore'>$value</option>";        }       
     
    ?>   

     </select>   
     <select onchange="calcolaPunti();" name="portiere3">    <option value="0">seleziona giocatore</option>         <?php        foreach ($portiere as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        ?>    
    </select>        
     <label>Difensori</label>       
       <select  onchange="calcolaPunti();" name="difensore1">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }     
       
    ?>   
     </select>
        <select onchange="calcolaPunti();" name="difensore2">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }        
    ?>    </select>    
    <select onchange="calcolaPunti();" name="difensore3">     <option value="0">seleziona giocatore</option>        <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }       
     
    ?>    
    </select>         
     <select  onchange="calcolaPunti();" name="difensore4">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }      
      
    ?>    
    </select>
        <select onchange="calcolaPunti();" name="difensore5">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }     
       
    ?>   
     </select>    
    <select onchange="calcolaPunti();" name="difensore6">    <option value="0">seleziona giocatore</option>         <?php        foreach ($difensore as $calciatore => $value) {            echo "<option value='$calciatore'>$value</option>";        }       
     
    ?>   
     </select>  

                                </form>
      <?php            }//fine sessione
      
    ?>     </div><!-- fine div crea rosa-->
    Ultima modifica di scatenato; 30-08-2014 a 18:34

  6. #6
    ho postato di nuovo il codice e scusami.

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Non so che dirti, quella condizione sembra giusta, l'errore potrebbe essere a monte. Vai per esclusione. Prova ad inserire echo $risultato; dopo la somma di tutti i valori, vedi che numero salta fuori e se corrisponde a ciò che è stato inserito nel form.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    mi da zero quindi non calcola niente forse ti e sfuggito il fatto che il valore viene prelevato dal db.
    potresti controllare meglio il codice che ho postato e aiutarmi nel dirmi come fare.

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Sto cercando di capire.
    Mi pare che la condizione elseif($risultato > 250) (di cui hai detto "non funziona") stia invece funzionando correttamente. Se $risultato è zero è ovvio che la condizione non sia verificata, come è giusto che sia.

    Quindi il problema non è nella condizione, piuttosto è nel calcolo di $risultato (e nei dati male organizzati sulle variabili):
    Codice PHP:
    $risultato$portiere1 $portiere2 $portiere3 ecc
    Ora, le variabili sommate sono prelevate dal form, ma cosa contengono?
    Deduco (dal codice) si tratti dei nomi dei giocatori (che usi come chiavi degli array associativi), o sbaglio?
    In tal caso è chiaro che non ha senso sommare i nomi dei giocatori, che non sono altro che stringhe.

    Se vuoi ottenere la somma dei costi, dovresti recuperare questi valori in qualche modo (chiaramente dal db) attraverso la relazione "nome del giocatore" e "costo", che attualmente sul tuo codice non c'è.

    Puoi farlo in svariati modi, ad esempio differenziando il valore degli array iniziali (in cui prelevi i dati dal db) in modo che quando si accede alla pagina per costruire il form, gli array siano popolati con la descrizione (giocatore, prezzo, squadra) come sono ora, viceversa, quando si accede per il controllo (dopo il submit), gli array siano popolati con il solo valore dei costi. In tal caso puoi recuperare questi valori, per la somma totale, con una cosa tipo $risultato= $portiere[$portiere1] + $portiere[$portiere2] + ecc..



    PS: Fosse per me, vedrei di ottimizzare meglio tutto il codice, come è stato anche già consigliato. Il tutto ha diverse parti ridondanti.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

Tag per questa discussione

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.