Sei sicuro che per qualche ID ci arrivi a 2?
Non è che hai 5 ID diversi ognuno con un solo "RISP_valore = 0.5"? Perché è così che sembra.
Sei sicuro che per qualche ID ci arrivi a 2?
Non è che hai 5 ID diversi ognuno con un solo "RISP_valore = 0.5"? Perché è così che sembra.
costruisci la tua query in modo tale che il lavoro sporco lo faccia il db; cicla il tuo array PER COSTRUIRE la query, che deve essere tipo questa:
In pratica, nella IN metti tutte le risp_id da cercare; poi una interrogazione sola e hai subito il totale complessivocodice:SELECT SUM(RISP_valore) AS totale FROM risposte WHERE RISP_id IN (1,2,4,7,12,23)
Prima di tutto grazie per la risposta, ho fatto come hai suggerito
echo $_conta_R mi visualizza:codice:$_D_query="SELECT * FROM domande"; $_D_totale= $db->query($_D_query); while($_D_rigo = mysqli_fetch_array($_D_totale, MYSQLI_ASSOC)) { $_D_id_dom = $_D_rigo ["DOM_id"]; //================================================================================== $_conta_risposta = isset($_POST["ris_".$_D_id_dom]) ? $_POST["ris_".$_D_id_dom] : array(); //================================================================================== foreach($_conta_risposta as $_conta_risposte) { //================================================================================== $_conta_R="SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN ($_conta_risposte)"; echo $_conta_R."<br>"; $_R_conta_totale = $db->query($_conta_R); while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC)) { $_R_valore = $_R_conta_rigo["totale"]; echo ($_R_valore)."<br>"; } //================================================================================== }
SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN (4)
SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN (6)
SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN (15)
Ma i valori non li somma e echo $_R_valore mi dà:
RISP_valore 0.5
RISP_valore 0.5
RISP_valore 0
Grazie di tutto
non ho detto quello. il flusso è
la query va fuori dal ciclo dell'array, che serve SOLO a costruire la INcodice:while costruisci "IN" wend query SUM()...IN leggi totale
Perdonami e grazie, non riesco a capire, sono un neofita di MySQL e PHP da un paio di mesi che mi avvicino, dato che sono in pensione dopo 43 anni di lavoro.
Mi dai qualche aiuto per cortesia, te ne sono grato
Buona giornata
più di così dovrei scriverti io il codice, ma non conosco PHP così bene (e, sinceramente, se te lo scrivessi io, impareresti di meno )
magari qualche altro forumista che ne sa più di me riesce a darti una mano
intanto rileggi con calma i miei suggerimenti
vedi se trovi qualche info qui http://mikevba.altervista.org/nuovo/...e=beg_stringhe
Ti ringrazio, ma non trovo qualcosa di utile
Creare una stringa da un Array con la funzione implode()
in fondo alla pagina
da quello che capisco così non serve il ciclo while
Prima di tutto voglio ringraziare optime, credo di aver risolto, sperando che sia valido:
Le risposte hanno valore:codice:$_D_query="SELECT * FROM domande"; $_D_totale= $db->query($_D_query); while($_D_rigo = mysqli_fetch_array($_D_totale, MYSQLI_ASSOC)) { $_D_id_dom = $_D_rigo ["DOM_id"]; //================================================================================== $_conta_risposta = isset($_POST["ris_".$_D_id_dom]) ? $_POST["ris_".$_D_id_dom] : array(); //================================================================================== foreach($_conta_risposta as $_conta_risposte) { //================================================================================== $_conta_R="SELECT sum(RISP_valore) as totale FROM risposte where RISP_id IN ($_conta_risposte)"; //echo $_conta_R."<br>"; $_R_conta_totale = $db->query($_conta_R); while($_R_conta_rigo = mysqli_fetch_array($_R_conta_totale, MYSQLI_ASSOC)) { $valore[]=$_R_conta_rigo["totale"]; } //================================================================================== } //================================================================================== } $_somma = $valore; echo "Totale Somma:".array_sum($_somma)."</p>";
RISP_valore 0.5
RISP_valore 0.5
RISP_valore 0.5
RISP_valore 0
e array_sum($_somma) mi dà Totale Somma:1.5
Buona giornata