SUM randuri dintr-o coloana SQL
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
sterica
- Mesaje:285
SUM randuri dintr-o coloana SQL
Salutare,
Am urmatorul cod:
Cod: Selectaţi tot
<?php
include 'bd_cnx.php';
if(isset($_POST['get_an'], $_POST['get_luna'], $_POST['get_reprezentant'], $_POST['get_tip_activitate'])){
//Array-ul cu datele care vor fi returnate, in format json
$ret =[['Task', 'Hours per Day']];
// Interogare SQL
$sch = $_POST['get_an'];
$sch_luna = $_POST['get_luna'];
$sch_reprezentant = $_POST['get_reprezentant'];
$sch_tip_activitate = $_POST['get_tip_activitate'];
$sql = "SELECT activitati.ANUL_DATA_ACTIVITATE,
activitati.TIP,
clase.CLASA,
COUNT(activitati.ID_CLASA) AS nb
FROM activitati
JOIN clase ON clase.ID = activitati.ID_CLASA
WHERE activitati.LUNA_DATA_ACTIVITATE = $sch_luna
AND activitati.ANUL_DATA_ACTIVITATE = $sch
AND activitati.ID_USER = $sch_reprezentant
AND activitati.TIP = ('$sch_tip_activitate')
GROUP BY CLASA";
// Executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0){
// adauga datele din fiecare rand din $result in $ret
while($row = $result->fetch_assoc()){
//floatval() transforma sirul numeric in numar
$ret[] =[$row['CLASA'], floatval($row['TOTAL'])];
}
}
else {
$ret[] =['', ''];
echo //<-----------suma valorilor din TOTAL
}
//returneaza datele ca json
echo json_encode($ret);
}
?>
Codul sql returneaza un tabel sub forma:
Cod: Selectaţi tot
anul_activitate | TIP | CLASA | TOTAL
2015 | Vizita | Companii | 15
2015 | Vizita | P.F | 30
Cum pot insuma valorile din coloana TOTAL si sa le afisez cu un echo.
Multumesc!
MarPlo
Mesaje:4343
Poti sa definesti o variabila in care adaugi total-ul din while().
Cam asa:
Cod: Selectaţi tot
$ret =[['Task', 'Hours per Day']];
$total =0;
//...
while($row = $result->fetch_assoc()){
//floatval() transforma sirul numeric in numar
$ret[] =[$row['CLASA'], floatval($row['TOTAL'])];
$total += floatval($row['TOTAL']);
}
- Apoi aplici "
echo $total; " unde vrei.
sterica
Mesaje:285
Am omis un lucru, codul de mai sus poarta numele de query.php iar
echo $total; vreau sa il pozitionez intr-un div
Cod: Selectaţi tot
<div id="totaluri"><?php include "query.php"; echo $total; ?></div>
Daca il scriu asa imi returneaza datele si pentru json, ceea ce imi este incomod. Cum pot scoate doar echo $total?
Multumesc!
MarPlo
Mesaje:4343
Daca acel select si TOTAL depind de datele primite prin $_POST, nu ai cum sa scoti totalul fara acele date.
Daca vrei total-ul adaugat in <div>, la "else", in loc de: $ret[] =['', '']; faci acolo Select-ul care vrei pentru TOTAL, aduni si aplici "echo".
sterica
Mesaje:285
Si cum voi putea prelua datele daca If-ul va returna intotdeauna TRUE?
MarPlo
Mesaje:4343
Datele pe care vrei sa le afisezi le retii pe fiecare in variabile, si aplici "echo" la ce variabila vrei acolo unde sa fie adaugata in pagina.
In functie de ce combinatii ajax-php vrei sa faci, poate trebuie sa regandesti logica codului.
Subiecte similare
- Afisare numar cel mai mare dintr o coloana
PHP - MySQL - XML
Primul mesaj
Bună Marplo
Vreau să extrag din coloan pret cel mai mare numar ca de exemplu 4444.
Mie imi afisează 54 în loc de 4444, dacă în loc de 4444 modific...
Ultimul mesaj
Am schimbat `pret` varchar(20) DEFAULT NULL in `pret` int(11) NOT NULL ca la tine si merge.
Multumesc