Somma di numeri da una tabella

di il
12 risposte

Somma di numeri da una tabella

Buongiorno, Ho un file “data” ,txt  in questo modo

Mario|19|lunedi

Giacomo|10|martedi

Elena|8|mercoledi

Con lo script riportato riesco a elencare in una tabella solo i numeri

19

10

8

ma non riesco a fare la somma dei numeri 19+10+9 Totale =38

$FileName = "2023-08-29.txt";    
$file = file($FileName);
print "<table border=\"0\" bgcolor=\"#000000\" align=\"center\">";
for ( $i = 0 ; +$i < count($file) ; $i++ )
{
   $tmp = explode ("|", $file[$i]);
  // print "<tr><td bgcolor=\"#EEEEEE\">$tmp[0]</td><td bgcolor=\"#EEEEEE\">$tmp[1]</td><td bgcolor=\"#EEEEEE\">$tmp[2]</td></tr>";
  print "<tr><td bgcolor=\"#EEEEEE\">$tmp[1]</td><td bgcolor=\"#EEEEEE\"></tr>";
}
 print "</table>";

Ho fatto delle prove scrivendo  esempio  (print $i+$i;) ma non funziona

Potete aiutarmi Grazie

12 Risposte

  • Re: Somma di numeri da una tabella

    29/08/2023 - Claudia2002 ha scritto:


    Con lo script riportato riesco a elencare in una tabella solo i numeri

    […]

    ma non riesco a fare la somma dei numeri 19+10+9 Totale =38

    Mi sembra una cosa abbastanza elementare: dichiara una variabile per il risultato della somma, impostala inizialmente a zero prima del ciclo, poi somma a essa la conversione in intero del valore che prendi dal file, uno alla volta, e alla fine stampa la somma raggiunta.

    In alternativa, potresti salvare i valori (opportunamente convertiti come predetto) all'interno di una lista, e infine calcolarne la somma.

    La prima soluzione è più efficiente, perché evita di salvare in memoria tutti i valori letti dal file.

  • Re: Somma di numeri da una tabella

    Grazie, faccio delle prove. 

  • Re: Somma di numeri da una tabella

    Niente……. non ci riesco, ho provato in tutti i modi ma non mi arrendo.

    Per voi sarà anche elementare ma per me è complicato.

  • Re: Somma di numeri da una tabella

    29/08/2023 - Claudia2002 ha scritto:


    Niente……. non ci riesco, ho provato in tutti i modi ma non mi arrendo.

    Spiega i dubbi: ti ho fornito il procedimento, ti ho linkato della documentazione e degli esempi sulle funzioni da utilizzare, mentre per l'algoritmo di calcolo di una somma non dovrebbe esserci bisogno di approfondimento.

    Se ci sono cose non chiare, si spiega quali sono e si cerca di capire.

    Dire “non ci riesco” senza aggiungere nulla veicola il messaggio “fatemelo voi”.

  • Re: Somma di numeri da una tabella

    Scusa il ritardo della risposta dovuta al lavoro. no, non volevo “fatelo voi” ho provati in mille modi ma evidentemente 

    la mia poca conoscenza php non mi permette di risolvere.

    io ho scritto questo ma la somma mi restituisce sempre 1 come tutte le altre prove che ho fatto.

     $somma = 0;
    for ($i = 0 ; +$i < count($file) ; $i++ );
    {
      $tmp = explode ("|", $file[$i]);
      $somma = $somma + intval($tmp[2]);
       }
    print( $somma);

  • Re: Somma di numeri da una tabella

    30/08/2023 - Claudia2002 ha scritto:


    io ho scritto questo ma la somma mi restituisce sempre 1 come tutte le altre prove che ho fatto.

    Esegui il debug del tuo script PHP, in modo da eseguire il programma passo per passo e vedere quello che succede.

    Se non riesci a fare il debug, usa la funzione di stampa per scrivere i valori delle variabili e verificare che contengano quello che ti aspetti volta per volta (es. che l'indice si incrementi, che $tmp contenga i valori giusti, che intval($tmp[2]) corrisponda a qualcosa di numericamente valido, che la $somma si aggiorni, e così via…

  • Re: Somma di numeri da una tabella

    Controlla nel tuo libro come usare la for. Se non hai un libro devi usarne uno. Controlla il ; alla fine del for

  • Re: Somma di numeri da una tabella

    RISOLTO solo per caso.

    Per sbaglio ho eliminato il file il file 2023-08-29.txt ho riscritto il file, precisamente ho fatto un copia e incolla, e la somma incredibilmente ha iniziato a funzionare .

    Non riesco a capire anche perchè quando aprivo il file 2023-08-29.txt si apriva normalmente.

    Non so proprio spiegarmelo, ma non me ne frega ora funziona.

    Un grazie a tutti .

    Un bacio

  • Re: Somma di numeri da una tabella

    31/08/2023 - Claudia2002 ha scritto:


    RISOLTO solo per caso.

    Spero che tu non ti occupi di queste cose “di mestiere”: se dovessi sentire qualcosa del genere da un idraulico o dal tecnico della caldaia, abbandonerei casa per paura di saltare in aria. :)

  • Re: Somma di numeri da una tabella

    31/08/2023 - Claudia2002 ha scritto:


    ma non me ne frega ora funziona.

    Concordo con Alka e spero anche che non sia l'informatica l'obiettivo dei tuo corso di studi 

    P.S. fare la stessa domanda contemporaneamente su due forum diversi non è una buona idea anche se la fai a nome di tuo fratello

  • Re: Somma di numeri da una tabella

    31/08/2023 - Claudia2002 ha scritto:


    Per sbaglio ho eliminato il file il file 2023-08-29.txt

    In questo caso…

    20 23 8 29 quaterna secca su tutte le ruote.

  • Re: Somma di numeri da una tabella

    31/08/2023 - Claudia2002 ha scritto:


    RISOLTO solo per caso.

    Per sbaglio ho eliminato il file il file 2023-08-29.txt ho riscritto il file, precisamente ho fatto un copia e incolla, e la somma incredibilmente ha iniziato a funzionare .

    Non riesco a capire anche perchè quando aprivo il file 2023-08-29.txt si apriva normalmente.

    Non so proprio spiegarmelo, ma non me ne frega ora funziona.

    Un grazie a tutti .

    Un bacio

    Se non hai trovata e corretta l'anomalia, non hai risolto, semplicemente vuol dire che l'errore c'e' ancora, anche se col set di dati attuali adesso ti sembra funzionare tutto correttamente

    Fossi in te cercherei di recuperare quel file txt (cestino o backup) lo rimetteri al suo posto e riproverei per capire esattamente dove sta realmente il problema, ed una volta individuato lo correggerei, anche se costa fatica e tanto tempo alla fine sarai sicura che (almeno quel problema li )  e' stato risolto

Devi accedere o registrarti per scrivere nel forum
12 risposte