Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    35

    Somma numeri da una tabella

    Salve,
    Ho questo file 2023-08-29.txt che contiene

    aa|19
    bb|11
    cc|9
    con questo script :


    $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>";

    ottengo una tabella che mi elenca
    19
    11
    9

    Come faccio la somma di questi numeri?
    Premessa....lo script sopra non l'ho fatto io e conosco poco poco il php.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Direi che devi avere una variabile "somma" dove accumulare la somma man mano che scorri le righe nel for e usare la funzione intval() per convertire il valore stringa in un intero (spero siano tutti interi) e sommarlo alla variabile "somma".

    Codice PHP:
    $somma 0;
    for(
    $i 0; ... ) {
       ...
       
    $somma $somma intval($tmp[2]);
    }

    print(
    "<p>Somma totale: $somma</p>"); 
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    35
    Grazie per la risposta,
    mi ci sono avvicinato al risultato e io avevo scritto questo:
    $somma = 0;
    for ($i = 0 ; +$i < count($file) ; $i++ );
    {
    $tmp = explode ("|", $file[$i]);
    $somma = $somma + intval($tmp);
    }
    print( $somma);

    Ma sia con il tuo script o con il mio mi da sempre 1

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Guarda il tipo di dato che rinvia explode. Guarda il tipo di dato che rivia IntVal. Prova a visualzzarli. Secondo te contengono il dato che ti occorre ?
    Poi devi rimuovere il + davanti a +$i.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ho sbagliato io a scrivere, tra l'altro: non è intval($tmp[2]), ma intval($tmp[1]).
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2010
    Messaggi
    35
    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.
    PS
    Uso l'account di mio fratello F,Gino ma io mi chiamo Claudia.

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.