10/10/2018, 10:52

[PHP] Đếm + xuất kết quả.

PHP Code:
<?php
include_once("config.php");

    
$ketnoi=mssql_connect($host,$user,$pass) or die ("Can not connect to server");
    
$link=mssql_select_db("hanghoa",$ketnoi) or die ("Can not connect to database");
#####################
#####################
#####################
?>
Phần ######### để trống chưa có code gì (sắp hỏi)

Hiện tại mình có 1 database (MSSQL 2005). Bao gồm 1 table hanghoa, bên trong table đấy có 1 cột Xuatkho. Và dữ liệu cột này có 2 giá trị 0 (chưa xuất kho) và 1 (đã xuất kho).

Hiện tại mình muốn viết 1 đoạn, nó dò theo cột Xuatkho, đếm các dòng có cùng giá trị 1 và xuất ra kết quả có bao nhiêu cột có giá trị 1 như thế. Như cột Xuatkho có 15 dòng có giá trị 1 thì sau khi thống kê nó xuất ra kết quả Đã xuất kho: 15

Không rành PHP lắm nên đụng mấy cái này khó xử
1024KB viết 13:03 ngày 10/10/2018
Cái này không liên quan đến PHP, là do câu lệnh MySQL:
Code:
$sql = "SELECT SUM(xuatkho) AS total FROM hanghoa WHERE xuatkho = 1";
thaidesign viết 13:01 ngày 10/10/2018
Cái này là MSSQL

Cột xuatkho không giới hạn số dòng
thuyduongcd viết 13:06 ngày 10/10/2018
Dùng count sẽ nhanh hơn dùng sum
Code:
SELECT COUNT(xuatkho) AS Total FROM hanghoa WHERE xuatkho=1
vzic viết 12:57 ngày 10/10/2018
Được gửi bởi thuyduongcd
Dùng count sẽ nhanh hơn dùng sum
Code:
SELECT COUNT(xuatkho) AS Total FROM hanghoa WHERE xuatkho=1
Dùng sum để tính tổng các giá trị trả về của một cột. Count là đếm số bản ghi.
Vì bạn sum các giá trị xuatkho là 1 nên có thể hiểu 1 + 1 + ... n nó sẽ tương tự kết quả như count. Nhưng nếu giá trị xuất kho là 0 tức là chưa xuất kho thì khi sum nó = 0 đấy .
Theo mình mỗi khi bạn add sản phẩm bạn nên + 1 cho 1 table thongke lần sau lấy ra cho nó lẹ
thaidesign viết 13:08 ngày 10/10/2018
PHP Code:
$sql mssql_query("SELECT SUM(xuatkho) AS Total FROM hanghoa WHERE xuatkho='1'");
echo 
'Đã xuất kho: ' .mssql_num_rows($sql); 
Kết quả: Đã xuất kho: 1

Vd table
PHP Code:
{hanghoa}
tt    loaihang    xuatkho
1        Mít         0
2        Ổi          1
3       Xoài         1
4       Bưởi         0
5       Quít         1
6        Me          1
7       Chanh        0 
1024KB viết 12:59 ngày 10/10/2018
Được gửi bởi thaidesign
PHP Code:
$sql mssql_query("SELECT SUM(xuatkho) AS Total FROM hanghoa WHERE xuatkho='1'");
echo 
'Đã xuất kho: ' .mssql_num_rows($sql); 
Kết quả: Đã xuất kho: 1

Vd table
PHP Code:
{hanghoa}
tt    loaihang    xuatkho
1        Mít         0
2        Ổi          1
3       Xoài         1
4       Bưởi         0
5       Quít         1
6        Me          1
7       Chanh        0 
. mysql_num_rows($sql) trả về số bản ghi tìm được. Tất nhiên nó trả về 1 rồi, phải là:
Code:
$sql = mssql_query("SELECT SUM(xuatkho) AS Total FROM hanghoa WHERE xuatkho='1'");
echo 'Đã xuất kho: ' .mssql_fetch_array($sql)['total'];
thaidesign viết 12:56 ngày 10/10/2018
Code:
Parse error: syntax error, unexpected '[', expecting ',' or ';' in D:\AppServ\www\test.php on line 8
Bỏ ['total'] thì ra Đã xuất kho: Array.
1024KB viết 12:59 ngày 10/10/2018
Được gửi bởi thaidesign
Code:
Parse error: syntax error, unexpected '[', expecting ',' or ';' in D:\AppServ\www\test.php on line 8
Bỏ ['total'] thì ra Đã xuất kho: Array.
Hớ hớ. Viết tắt nó thế.
chỉnh lại:
Code:
$sql = mssql_query("SELECT SUM(xuatkho) AS Total FROM hanghoa WHERE xuatkho='1'");
$result = mssql_fetch_array($sql);
echo 'Đã xuất kho: ' .$result['Total'];
thaidesign viết 12:57 ngày 10/10/2018
À được rồi.

Tuy nhiên kết quả chính xác mình phải sửa SUM thành COUNT
Bài liên quan
0