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

    problemi nel lavorare sulla tabella mysql

    Ciao, innanzitutto grazie per l'aiuto......
    Nel mio codice php io prendo dei dati che inserisce l'utente in una maschera precedente, poi apro una tabella nel db mysql e a questo punto devo fare delle operazioni confrontando dei dati della tabella con quelli inseriti dall'utente.
    Praticamente dovrei scorrere record per record della tabella e a secondo di quello che trovo rispetto ai dati dell'utente agisco.

    Esempio:


    L'utente ha inserito inserito due date, una di inizio (01/01/2007) e una di fine (01/10/2009).


    Nella tabella ci sono tali record


    DataInizio DataFine Giorni tasso Importo
    01/01/1970 31/12/1970 365 15% 150000
    ......
    01/01/2007 31/12/2007 365 10% 123000
    01/01/2008 31/12/2008 366 5% 110000
    01/01/2009 31/12/2009 365 3% 105000
    01/01/2010 31/12/2010 365 1% 100000


    Praticamente io devo prendere i record che vanno tra 01/01/2007 e il 01/10/2009, ovvero, i tre che hanno come data inizio 01/01/2007 - 01/01/2008 - 01/01/2009. Devo fare su questi delle operazioni (senza riscrivere sulle tabelle) e restituire un valore solo come visualizzazione.
    Quando ad esempio arrivo nel record del 2009 deve fare la differenza in numero di giorni tra la data di fine inserita dall'utente (01/10/2009) e la data di fine della tabella (31/12/2009) e poi moltiplicarla per il tasso e l'importo

    Io ho usato questo codice qui ma forse così non va bene.....forse per lavorare sui dati delle tabelle bisognerà fare qualcos'altro. Qualcuno può scrivermi un pezzettino di codice di esempio?
    Grazie


    <html>
    <head><title>Risultato</head></title>


    <body>


    <?php
    // Avviamo la sessione
    session_start();


    // Richiamiamo il file delle connessioni
    require_once('mysqlconn.php');


    // seleziono il database
    mysql_select_db($database, $corso);


    // impostiamo una variabile per il successo
    $bSuccesso = true;


    // prendiamo i valori che mi hanno inserito
    $DataPrec = $_REQUEST['DataPrecetto'];
    $ImpPrec = $_REQUEST['ImportoPrecetto'];
    $DataPig = $_REQUEST['DataPignoramento'];
    $TassoMor = $_REQUEST['TassoMora'];
    //$ImportoParziale = 0


    // verifichiamo la lunghezza del testo
    if (strlen($DataPrec) <= 0)
    $bSuccesso = false;
    if (strlen($ImpPrec) <= 0)
    $bSuccesso = false;
    if (strlen($DataPig) <= 0)
    $bSuccesso = false;
    if (strlen($TassoMor) <= 0)
    $bSuccesso = false;
    if (($DataPrec) > $DataPig)
    $bSuccesso = false;


    // se non è avvenuto un errore inizio il calcolo
    if ($bSuccesso = true) {
    //prendo l'anno del pignoramento
    $aapigin=substr($DataPig, 6, 4);
    //Vado due anni indietro
    $aapigin = $aapigin - 2;
    $GGMM = 01;
    $aapigin2 = $GGMM."/".$GGMM."/".$aapigin;


    //Se la data del pignoramento è > della data precetto inizio con i
    calcoli
    if ($aapigin2 > $DataPrec) {
    $GG = 31;
    $MM = 12;
    $aadp=substr($DataPig, 6, 4);
    $aapigfin2 = $GG."/".$MM."/".$aadp;


    $strsql = "SELECT dal, al, giorni, tasso FROM Interessilegali";
    $rowset = mysql_query($strsql, $corso) or die (mysql_error());
    while ($row = mysql_fetch_assoc ($rowset))
    $aaprec=substr($DataPrec, 6, 4);
    $aadal=substr($row['dal'], 6, 4);
    $aapig=substr($DataPig, 6, 4);
    if ($aaprec >= $aadal and $aaprec < $aapig) {
    $NGiorni = $row['dal'] - $DataPrec;
    $ImportoParziale = $ImportoParziale + (($ImpPrec * $row['tasso']
    * $NGiorni)/36500);
    }
    if ($aadal >= $aapigin or $aadal <= $aapig) {
    $ImportoParziale = 2 + (($ImpPrec * $TassoMor * $row['giorni'])/
    36500);
    }
    if ($aadal > $aapig) {
    $ImportoParziale = $ImportoParziale + (($ImpPrec * $row['tasso']
    * $row['giorni'])/36500);
    }


    mysql_free_result ($rowset);
    }


    }


    if ($bSuccesso == true) {
    {
    echo '<p align="center">IN VIA PRIVILEGIATA</p>';
    echo '<p align="center">Complimenti '.$ImportoParziale.', accesso
    avvenuto con successo!</p>';
    }
    }
    ?>
    </body>
    </html>

  2. #2
    Utente di HTML.it L'avatar di Grino
    Registrato dal
    Oct 2004
    Messaggi
    739
    Devi migliorare la query SQL in modo da effettuare i calcoli direttamente in select e con la clausola where limitare le righe estratte alle sole necessarie. E te la cavi con poco.

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.