Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 27 su 27

Discussione: Variabili php

  1. #21
    Utente di HTML.it L'avatar di unicorn
    Registrato dal
    Aug 2004
    Messaggi
    176
    Originariamente inviato da piero.mac
    :maLOL: lo dobbiamo fare noi, non tu....

    Il separatore dei decimali e' il PUNTO



    Scusa, ho usato il termine virgola per dire che si tratta di un valore decimale, ma il separatore è un punto.
    Comunque a questo punto penso che il problema sia tra php e mysql, infatti da php (facendo una print) mostra correttamente il risultato e da mysql effettua correttamente l'aggiornamento.


  2. #22
    Posta il create table (prendilo con SHOW CREATE TABLE nome_tabella) e poi posta anche la query cosi' come e scritta e la stampa della stessa con le variabili risolte.

    ripeto:

    SHOW CREATE TABLE tabella.

    La query e la stampa della query (es.: echo $query....)

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #23
    Utente di HTML.it L'avatar di unicorn
    Registrato dal
    Aug 2004
    Messaggi
    176
    Originariamente inviato da piero.mac
    Posta il create table (prendilo con SHOW CREATE TABLE nome_tabella) e poi posta anche la query cosi' come e scritta e la stampa della stessa con le variabili risolte.

    ripeto:

    SHOW CREATE TABLE tabella.

    La query e la stampa della query (es.: echo $query....)
    codice:
    | utenti | CREATE TABLE `utenti` (
      `id` int(5) unsigned NOT NULL auto_increment,
      `username` varchar(30) NOT NULL default '',
      `val` float NOT NULL default '300',
      `temp` set('0','1') NOT NULL default '',
      `regdate` varchar(11) NOT NULL default '',
      `uid` varchar(32) NOT NULL default '',
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
    e poi

    codice:
    <?php
    
    ………
    $num=abs($_POST["num"]);
           
              $result = mysql_query("SELECT val FROM utenti where id='1'") or die(mysql_error());
              $r = mysql_fetch_array($result,MYSQL_NUM);
    
              if ($_POST['operation'] ==  "Addizione")
                $x = $r[0] + $num;
              else
                $x = $r[0] - $num;
    
    
                $contr=mysql_query("UPDATE utenti set val='".$x."' where id='1'");
    
    ?>
    
    ……………
    
    <input name="num" size='10'>
    <input type="submit" name="operation" value="Addizione" >
    <input type="submit" name="operation" value="Sottrazione">
    
    ………………
    il val iniziale è 160, inserisco 5.5, e mi stampa:

    UPDATE utenti set val='165,5' where id='1'


    Ovviamente ho provato a eliminare gli apici, ma nulla.

  4. #24
    il campo float dovrebbe presentarsi come:

    `val` float(8,2) NOT NULL default '300.00',

    e non come il tuo:

    `val` float NOT NULL default '300',

    questo nel caso ti servano 2 decimali.

    Poi la stampa della query riporta una virgola.... che tu sostenevi fosse un punto....

    UPDATE utenti set val='165,5' where id='1'

    questo val='165,5' e' una stringa per mysql. dovrebbe essere val='165.5' ... con o senza apici.





    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #25
    Utente di HTML.it L'avatar di unicorn
    Registrato dal
    Aug 2004
    Messaggi
    176
    Originariamente inviato da piero.mac
    il campo float dovrebbe presentarsi come:

    `val` float(8,2) NOT NULL default '300.00',

    e non come il tuo:

    `val` float NOT NULL default '300',

    questo nel caso ti servano 2 decimali.

    Poi la stampa della query riporta una virgola.... che tu sostenevi fosse un punto....

    UPDATE utenti set val='165,5' where id='1'

    questo val='165,5' e' una stringa per mysql. dovrebbe essere val='165.5' ... con o senza apici.





    Hai ragione, io inserisco dal form 5.5 ma nella variabile mi pone 5,5 e ovviamente non funziona. Ma come posso risolvere?

  6. #26
    Non so che fai ma adattando le tue cose per una prova, mi funziona tutto regolarmente. Verifica il campo e prova a reimpostarlo correttamente. Mi suona male come e' composto. Ti metto l'esempio su cui ho provato. Ovviamente non posso fare le query ed ho simulato di ricevere il valore 300 che e' il tuo default per il campo "val".
    codice:
    $_POST['operation'] =  "Addizione" ;
    $_POST['num'] = '55.5';
    $num = abs($_POST["num"]);
           
              $r[] = '300';
    
              if ($_POST['operation'] ==  "Addizione")
                $x = $r[0] + $num;
              else
                $x = $r[0] - $num;
    
              echo ("UPDATE utenti set val='".$x."' where id='1'");
    Prova entrambe le combinazioni...


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #27
    Utente di HTML.it L'avatar di unicorn
    Registrato dal
    Aug 2004
    Messaggi
    176
    Originariamente inviato da piero.mac
    Non so che fai ma adattando le tue cose per una prova, mi funziona tutto regolarmente. Verifica il campo e prova a reimpostarlo correttamente. Mi suona male come e' composto. Ti metto l'esempio su cui ho provato. Ovviamente non posso fare le query ed ho simulato di ricevere il valore 300 che e' il tuo default per il campo "val".
    codice:
    $_POST['operation'] =  "Addizione" ;
    $_POST['num'] = '55.5';
    $num = abs($_POST["num"]);
           
              $r[] = '300';
    
              if ($_POST['operation'] ==  "Addizione")
                $x = $r[0] + $num;
              else
                $x = $r[0] - $num;
    
              echo ("UPDATE utenti set val='".$x."' where id='1'");
    Prova entrambe le combinazioni...

    Ho modificato il campo come mi hai suggerito in float(8,2).
    Ho fatto le prove che mi hai suggerito, e come mi aspetta imponendo nel codice $_POST['num'] = '55.5'; e $r[] = '300'; mi visualizza correttamente 55.5 e 300 ma per l'operazione picche.

    Ora devo scappare farò qualche prova domani

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 © 2026 vBulletin Solutions, Inc. All rights reserved.