Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379

    non riesco a venirne a capo

    ragazzi non sono il tipo al quale piace postare codici interi ma per questa volta dovrete perdonarmi!

    la variabile in method post la prendo da un form esterno ma non capisco perche lo script non funge, ovvero se faccio il print di tutti i valori meli da' correttamente, ma piu' avanti negli if sembra bloccarsi con $sa che non viene messo sul DB.. vi ringrazio anticipatamente per ogi eventuale risp.

    Codice PHP:
    <?

    $Locanda 
    $_POST['Soldi_Cibo'];
    $Locanda trim($Locanda);

    if(
    $Locanda != ''){

    $MySql "SELECT * FROM Personaggio WHERE Nome = '".pars($Login)."'";
    $Result mysql_query($MySql);
    $rs mysql_fetch_array($Result);
    $Soldi $rs["Soldi"];
    $Salute $rs["Salute"];
    $Salute_m $rs["MaxSalute"];
    $Salute_n $rs["Salute_n"];
    $rs->close;

    $MaxSalute $Salute_m $Salute_n;

    echo 
    "   soldi:".$Soldi." salute:".$Salute." salutemax:".$Salute_m." salute_n:".$Salute_n;

    switch(
    $Locanda)
    {
        case 
    '4MD':
        
    $sx 4;
        
    $sa 1;
    break;

        case 
    '6MD':
        
    $sx 6;
        
    $sa 2;
    break;

        case 
    '11MD':
        
    $sx 11;
        
    $sa 3;
    break;

        case 
    '25MD':
        
    $sx 25;
        
    $sa 5;
    break;
        case 
    '35MD':
        
    $sx 35;
        
    $sa 6;
    break;

        case 
    '65MD':
        
    $sx 65;
        
    $sa 12;
    break;

        case 
    '100MD':
        
    $sx 100;
        
    $sa 18;
    break;
        
        }


        
    if (
    $Soldi $sx) {
             echo 
    "<script language='javascript'>
               alert('Non hai abbastanza denaro appresso per pagare!');
             </script>"
    ;
                  
        }else{         

    echo 
    'soldi da pagare:'.$sx.' salute acquisita'.$sa;

    if(
    $Salute >= $MaxSalute){

            echo 
    "<script language='javascript'>
               alert('La tua salute è gia al massimo!!');
             </script>"
    ;

    }elseif((
    $Salute $sa) < $MaxSalute){

    $MySql"UPDATE Personaggio SET Salute = Salute + '".$sa."', Soldi = Soldi - '".$sx."' WHERE Nome = '".pars($Login)."'";
    $Result mysql_query($sql01);
        
                
    $MySql "INSERT INTO LogFinanza (Nome, Somma, Tipo, DataEvento, Nota)";
                
    $MySql .= " VALUES('".pars($Login)."', '".$sa."',";
                
    $MySql .= "'-4', '".strftime("%Y-%m-%d %H:%M:%S")."',";
                
    $MySql .= "'Cibo Locanda')";
                
    $Result mysql_query($MySql);
                
    echo 
    "<script language='javascript'>
        alert('Hai ottenuto '.
    $sa.' punti salute!!');
          </script>"
    ;


    }elseif((
    $Salute $sa) >= $MaxSalute){
            
    $MySql"UPDATE Personaggio SET Salute = ".$MaxSalute."', Soldi = Soldi - '".$sx."' WHERE Nome = '".pars($Login)."'";
    $Result mysql_query($sql01);
            
                
    $MySql "INSERT INTO LogFinanza (Nome, Somma, Tipo, DataEvento, Nota)";
                
    $MySql .= " VALUES('".pars($Login)."', '".$sa."',";
                
    $MySql .= "'-4', '".strftime("%Y-%m-%d %H:%M:%S")."',";
                
    $MySql .= "'Cibo Locanda')";
                
    $Result mysql_query($MySql);
                    
                    
                echo 
    "<script language='javascript'>
               alert('Hai raggiunto il tuo livello di salute massimo!!');
             </script>"
    ;            
                    
      }
     }    
    }            
    ?>

  2. #2
    La prima cosa che ho notato ad una veloce occhiata e' che, quando scrivi le query, tratti $a e $x come delle stringhe (perche' ci metti gli apici) addizionandole e sottraendole al valore stesso del campo, che immagino sia invece un intero (trattandosi di soldi e salute del personaggio).

    Quindi come prima cosa prova a togliere gli apici intorno alle variabili $a e $x nelle query di UPDATE e INSERT.

    ^_^

  3. #3
    Utente di HTML.it L'avatar di alpeweb
    Registrato dal
    Oct 2002
    Messaggi
    1,691
    scusa ma che cos'è $Result = mysql_query($sql01);
    o meglio $sql01 ?

    Prova con $MySql magari esegui una query.
    ...altri 5 anni di purga...

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    ragazzi grazie di nuovo xD ormai dal veloce che lavoro trascuro le cose piu' banali xD

    grazie ancora!!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    379
    una domanda ancora ma è sbagliato scrivere cosi: Salute = Salute + '".$sa."',??

  6. #6
    Già Darsch2501 l'aveva fatto notare che è meglio evitare come tu hai fatto.
    Cioé se metti gli apici vuol dire che tu tratti $sa come una stringa, quindi quando fai Salute + '$sa' MySQL converte la stringa in un intero ed esegue la somma.

    Perché fare questo se $sa è già un intero?
    Meglio, dunque scrivere

    $MySql= "UPDATE Personaggio SET Salute = Salute + " . $sa . " .....

    Ciao.

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.