Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11

    Somma da una tabella...

    Ciao a tutti!

    Ho un problema..

    ho questa tabella in mysql


    input | letter | number

    input1 | A | 3
    input2 | P | 5
    input3 | I | 8
    input4 | M | 8
    input5 | A | 2
    input6 | P | 2
    input7 | M | 1
    input8 | F | 2
    input9 | F | 4
    input10 | A | 2


    quel che vorrei fare è selezionare tutte le lettere uguali e calcolare la somma dei rispettivi numeri..
    In poche parole vorrei che l'output del php generasse questo:

    $totA="7A"
    $totP="7P"
    $totI="8I"
    $totM="9M"
    $totF="6F"

    ho provato ad utilizzare questa query


    codice:
    SELECT letter, SUM(number) AS my_sum FROM table GROUP BY letter
    ma nell'output mi genera solamente la somma di una lettera (la A) mentre vorrei che me le visualizzasse tutte..

    è possibile fare una cosa del genere?

  2. #2
    la query è giusta, secondo me, magari sei tu che vedi solo la prima riga...

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11
    grazie dell'aiuto.. forse dipende dal codice che ho scritto:

    codice:
    $result = mysql_query("SELECT letter, SUM(number) AS my_sum FROM table GROUP BY letter");
    
    if(mysql_num_rows($result)>0) {
        $mostra = mysql_fetch_array($result);
        $output = "&letter=".$mostra["letter"]."&";
        $output .= "&number=".$mostra["number"]."&";
        $output .= "&my_sum=".$mostra["my_sum"]."&";
    
    }
    dov'è che sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    591
    manca il ciclo while

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11
    ecco.. lo sapevo che mancava il while: era elementare..
    ma come posso implementarlo nel codice sopra? sò che non è difficile ma mi stò scervellando da troppo tempo e non riesco a venirne fuori.. c'è qualche anima pia?

  6. #6
    codice:
    while ( $mostra = mysql_fetch_array($result)){
        $output = "&letter=".$mostra["letter"]."&";
        $output .= "&number=".$mostra["number"]."&";
        $output .= "&my_sum=".$mostra["my_sum"]."&";
    
    }
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11
    uhm... in questo modo però l'output è:

    &letter=&&number=&&my_sum=7& (dove 7 è la somma dell'ultima lettera inserita nella tabella che ho riportato sopra, nel mio caso A)

    io invece vorrei che visualizzasse tutte le lettere e somme nella stessa pagina e in questo modo:

    &letter=A&&number=&&my_sum=7&
    &letter=P&&number=&&my_sum=7&
    &letter=I&&number=&&my_sum=8&
    &letter=M&&number=&&my_sum=9&
    &letter=F&&number=&&my_sum=6&

    uff.. muoio..

  8. #8
    inizializza la stringa vuota fuori dal ciclo e poi concatena i vari pezzi:

    codice:
    $output="";
    while ( $mostra = mysql_fetch_array($result)){
        $output .= "&letter=".$mostra["letter"]."&";
        $output .= "&number=".$mostra["number"]."&";
        $output .= "&my_sum=".$mostra["my_sum"]."&
    \n";
    
    }






    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    11
    e sei un grande... però non visualizza ancora la lettera..

    cioè stampa a schermo i vari output delle somme in questo modo:

    &letter=&&number=&&my_sum=7&
    &letter=&&number=&&my_sum=7&
    &letter=&&number=&&my_sum=8&
    &letter=&&number=&&my_sum=9&
    &letter=&&number=&&my_sum=6&

    mentre dovrebbe visualizzare anche:

    &letter=A&&number=&&my_sum=7&
    &letter=P&&number=&&my_sum=7&
    &letter=I&&number=&&my_sum=8&
    &letter=M&&number=&&my_sum=9&
    &letter=F&&number=&&my_sum=6&

    ..che manca?

  10. #10
    controlla la query e i nomi dei campi della tua tabella in mySQL con quelli che estrai in php, se non te li scrive significa che hai sbagliato il nome dei campi
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.