Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17

Discussione: operazione algebrica

  1. #1

    operazione algebrica

    Ciao a tutti,

    ho un programmino di gestione cassa che, fatto l'inserimento, mi visualizza id, data, vocespesa, descrizione, entrate e uscite, riporto il frammento di codice

    while($riga = mysql_fetch_array($risultato)){
    $formatoData=date('d/m/Y', $riga['data']);
    echo "<tr><td></td>
    <td>$riga[id]</td>
    <td>$formatoData</td>
    <td>$riga[vocespesa]</td>
    <td>$riga[descrizione]</td>
    <td>$riga[entrate]</td>
    <td>$riga[uscite]</td>
    </tr>";
    }

    ho aggiunto il campo saldo che dovrebbe riportarmi per ogni riga il saldo fino a quel momento, per arrivare all'ultima riga con il saldo attuale.

    E' possibile con PHP?

    ho provato ad inserire nel ciclo questi due comandi, ottenendo il saldo della riga, ma non tiene conto delle righe precedenti.

    while($riga = mysql_fetch_array($risultato)){
    $formatoData=date('d/m/Y', $riga['data']);
    $saldo=$riga['entrate']-$riga['uscite'];
    echo "<tr><td></td>
    <td>$riga[id]</td>
    <td>$formatoData</td>
    <td>$riga[vocespesa]</td>
    <td>$riga[descrizione]</td>
    <td>$riga[entrate]</td>
    <td>$riga[uscite]</td>
    <td>$saldo</td>
    </tr>";
    }

    come posso risolvere?
    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131

    Re: operazione algebrica

    Originariamente inviato da francodace
    Ciao a tutti,

    ho un programmino di gestione cassa che, fatto l'inserimento, mi visualizza id, data, vocespesa, descrizione, entrate e uscite, riporto il frammento di codice

    while($riga = mysql_fetch_array($risultato)){
    $formatoData=date('d/m/Y', $riga['data']);
    echo "<tr><td></td>
    <td>$riga[id]</td>
    <td>$formatoData</td>
    <td>$riga[vocespesa]</td>
    <td>$riga[descrizione]</td>
    <td>$riga[entrate]</td>
    <td>$riga[uscite]</td>
    </tr>";
    }

    ho aggiunto il campo saldo che dovrebbe riportarmi per ogni riga il saldo fino a quel momento, per arrivare all'ultima riga con il saldo attuale.

    E' possibile con PHP?

    ho provato ad inserire nel ciclo questi due comandi, ottenendo il saldo della riga, ma non tiene conto delle righe precedenti.

    while($riga = mysql_fetch_array($risultato)){
    $formatoData=date('d/m/Y', $riga['data']);
    $saldo=$riga['entrate']-$riga['uscite'];
    echo "<tr><td></td>
    <td>$riga[id]</td>
    <td>$formatoData</td>
    <td>$riga[vocespesa]</td>
    <td>$riga[descrizione]</td>
    <td>$riga[entrate]</td>
    <td>$riga[uscite]</td>
    <td>$saldo</td>
    </tr>";
    }

    come posso risolvere?
    grazie
    ciao prova così
    $saldo = $saldo + ($riga['entrate']-$riga['uscite']
    se il numero e' negativo dovrebbe fare la sottrazione

  3. #3
    mi da queste risposte, che sarebbero giuste se viste dall'alto verso il basso:

    entrate - uscite - saldo
    --------|-------|-------
    0 100 -100 <- questo è l'ultimo record inserito
    0 100 -200
    0 50 -250
    0 50 -300
    0 50 -350
    0 50 -400
    500 0 100 <- questo è il primo record inserito
    ------------------------

    la ricerca la effettuo in maniera decrescente per avere più in alto l'ultimo record inserito e ovviamente il saldo attuale.

    $query="SELECT * FROM `cassa` ORDER BY `id` DESC ";

    li dovrei visualizzare al contrario

    come faccio?
    grazie per la collaborazione

  4. #4
    per completezza:

    se tolgo DESC funziona

    $query="SELECT * FROM `cassa` ORDER BY `id` "; --> funziona

    se aggiungo DESC

    $query="SELECT * FROM `cassa` ORDER BY `id` DESC "; --> funziona al contrario

    a me servirebbe con DESC

    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    Originariamente inviato da francodace
    per completezza:

    se tolgo DESC funziona

    $query="SELECT * FROM `cassa` ORDER BY `id` "; --> funziona

    se aggiungo DESC

    $query="SELECT * FROM `cassa` ORDER BY `id` DESC "; --> funziona al contrario

    a me servirebbe con DESC

    ciao
    scusa ma se e' questo il problema xchè non ti salvi il valore ne db così non devi aggiornarlo ogni volta???

  6. #6
    ci sto provando, ma non ci riesco, aiutatemi vi prego.

  7. #7
    Ma allora non si può proprio fare?

  8. #8
    l'ultima colonna, quella relativa al saldo progressivo, è giusta, ma si visualizza al contrario:

    E U S
    0 100 -100 <- la colonna S parte da qui e scende verso il basso
    0 100 -200
    0 50 -250
    500 0 (250) <- dovrebbe partire da quì ,che è la prima operazione, e salire verso l'alto

    E U S
    0 100 (250) questo è l'ordine che dovrebbe avere la colonna S
    0 100 350
    0 50 450
    500 0 500 <- partenza, ovvero prima operazione registrata

    in entrambi i casi il saldo (250) è giusto, ma nel primo caso è posizionato in maniera errata.

    si può risolvere?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    131
    allora ci sono 2 opzioni
    la prima e che chiedi i record non in ordine inverso e salvi tutto su una matrice che poi al momento di visualizzarla fai un ciclo while al contrario
    totale record 20 - 1
    e così risolvi il tutto
    atrimenti
    crei un nuovo campo chiamato saldo nella tabella
    poi fai un ciclo while ed a ogni record che compari
    $saldo=$riga['entrate']-$riga['uscite'];
    vai a scrivere il record saldo nel db (solo la prima volta)

    anche se secondo me fai prima con una matrice

  10. #10
    scusami, ma questa matrice deve essere bidimensionale?
    e poi man mano che si inseriscono i nuovi record non fa nulla che la matrice si fa sempre più grande?

    per quanto riguarda la seconda soluzione, avevo gia strutturato il campo saldo perchè ci volevo inserire il saldo progressivo.

    Indipendentemente dalla soluzione scelta vorrei un aiuto dettagliato per la risoluzione del problema e ringrazio anticipatamente tutti quelli che l'hanno già fatto oltre tutti quelli che lo faranno.

    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.