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

Discussione: risultato query

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420

    risultato query

    Ciao a tutti...
    Non so se sono più fulminato del solito o se mi sfugge qualche dettaglio...
    Ho la necessità di sommare tutti i valori di un array che deriva da una query ad una tabella.
    Nel mio esempio la tabella semplificata al massimo ha questa forma:

    prodotto|quantita1|quantita2
    nome|3|0

    in pratica io devo sommare tutte le quantità per un dato nome;
    siccome non mi ritrovavo con i risultati e visto che so che quantita2 = 0, ho semplificato in questo modo:
    il codice è banale:

    Codice PHP:
    $sql ="select quantita1
    from tabella
    where prodotto = 'nome'"
    ;
    $row $db->query($sql);
    $res $row->fetch();

    $tot array_sum($res);

    echo 
    $tot
    E l'echo mi da come risultato 6!
    Se invece mostro l'echo di $res['quantita1'] è correttamente 3...
    Var_dump($res) mi restituisce questo risultato:

    array(2){["quantita1"]=>string(1)"3" [0]=> string(1) "3" }

    Perchè mi indica 2 elementi nell'array?
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Farei semplicemente
    codice:
    select SUM(quantita1) from tabella where prodotto = 'nome'

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Veramente ti basterebbe fare:

    codice:
    SELECT SUM(quantita1) AS somma FROM tabella WHERE prodotto = 'nome'
    P.S.
    .....sono arrivato secondo
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    uhm... siete sicuri vada bene?
    io devo sommare in orizzontale, non in verticale...

    cioè nel momento in cui sostituisco

    sum(quantita1)

    con

    sum (*) o sum (quantita1,quantita2)

    la query va in errore...


    edit:

    nome|qt1|qt2|qt3|qt1000

    il nome (prodotto) è univoco... ma ha più quantità - ogni quantità rappresenta un magazzino - io devo sommare tutti i magazzini
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

  5. #5
    Originariamente inviato da sitodue
    uhm... siete sicuri vada bene?
    io devo sommare in orizzontale, non in verticale...

    cioè nel momento in cui sostituisco

    sum(quantita1)

    con

    sum (*) o sum (quantita1,quantita2)

    la query va in errore...


    edit:

    nome|qt1|qt2|qt3|qt1000

    il nome (prodotto) è univoco... ma ha più quantità - ogni quantità rappresenta un magazzino - io devo sommare tutti i magazzini
    Perdonami, ma nel tuo primo post non mi sembra che tu faccia questo!!!

    Originariamente inviato da sitodue
    Codice PHP:
    $sql ="select quantita1
    from tabella
    where prodotto = 'nome'"
    ;
    $row $db->query($sql);
    $res $row->fetch();

    $tot array_sum($res);

    echo 
    $tot



    P.S.
    In ogni caso, per fare una somma delle varie colonne basta il semplice operatore + . E' inutile andare per tentativi quando basterebbe una semplice lettura del manuale!

    codice:
    SELECT (quantita1 + quantita2) AS somma from tabella where prodotto = 'nome'
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Perchè dici di no?
    Siccome il campo nome è chiave primaria, la mia query restituirà sempre e solo un'unica tupla, che sarà inserita nell'arrai $res[];
    A quel punto a me occorre sommare tutti i campi dell'array; perchè la funzione array_sum non va bene?
    Come dici tu mi sta bene, potrei farlo in vari modi diversi, ma se ho 150 campi "quantità" che faccio, me li metto a scrivere tutti quanti uno per uno ?
    O peggio ancora, stavo valutando di creare la tabella dinamicamente quindi non saprei a priori quanti sono i campi... scrivere la query diventa moolto complicato a quel punto...
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

  7. #7
    Originariamente inviato da sitodue
    Perchè dici di no?
    Siccome il campo nome è chiave primaria, la mia query restituirà sempre e solo un'unica tupla, che sarà inserita nell'arrai $res[];
    A quel punto a me occorre sommare tutti i campi dell'array; perchè la funzione array_sum non va bene?
    Come dici tu mi sta bene, potrei farlo in vari modi diversi, ma se ho 150 campi "quantità" che faccio, me li metto a scrivere tutti quanti uno per uno ?
    O peggio ancora, stavo valutando di creare la tabella dinamicamente quindi non saprei a priori quanti sono i campi... scrivere la query diventa moolto complicato a quel punto...

    Peccato che la tua query selezioni solamente il campo quantita1, per cui non vedo come tu possa, successivamente, sommare le altre colonne:


    Originariamente inviato da sitodue
    Codice PHP:
    $sql ="select quantita1
    from tabella
    where prodotto = 'nome'"
    ;
    $row $db->query($sql);
    $res $row->fetch();

    $tot array_sum($res);

    echo 
    $tot
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  8. #8
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da satifal
    Peccato che la tua query selezioni solamente il campo quantita1, per cui non vedo come tu possa, successivamente, sommare le altre colonne:

















    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2011
    Messaggi
    420
    Originariamente inviato da satifal
    Peccato che la tua query selezioni solamente il campo quantita1, per cui non vedo come tu possa, successivamente, sommare le altre colonne:

    Direi che era scritto fin dal primo post!

    in pratica io devo sommare tutte le quantità per un dato nome;
    siccome non mi ritrovavo con i risultati e visto che so che quantita2 = 0, ho semplificato in questo modo
    - "Si sono vegetariano. Diciamo che non mangio nulla che abbia un cuore"
    - "E i carciofi?"

  10. #10
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Originariamente inviato da sitodue
    Direi che era scritto fin dal primo post!
    L'esempio che avevi dato si riferisce ad una colonna singola, e lì SUM() sarebbe il modo migliore. Se poi ci sono altre esigenze dovresti essere più precisio.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

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 © 2024 vBulletin Solutions, Inc. All rights reserved.