作者 主題: sqlsrv_fetch_array - 個別計算出 收銀員 名字出現次數....  (閱讀 8920 次)

0 會員 與 1 訪客 正在閱讀本文。

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
是否可以從
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) )
符合交易日期條件後, 個別計算出 收銀員 名字出現次數....
如以下圖示 :
顯示在 (總折價金額合計)=>625元 後面 黃穗婷 : 1 王永靜 : 2 陳世珊 : 4

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
if(!isset($$name)){
$$name=0;
}
$$name++;

Best regards!

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
if(!isset($$name)){
$$name=0;
}
$$name++;

Best regards!

非常謝謝 指點... 因為新手者, 是否可以更完整說明
附上自己目前程式碼...

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){


        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>"; 
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;          
        }

        echo "<tr>";
      
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      
      $sumTB033 = $sumTB033 + $row['銷售合計'];
                   
}
echo "(銷售合計)=>" . "<font color=red>".$sumTB033 ."元" ."</font>" ."</tr>". "\n";

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
if(!isset($$name)){
$$name=0;
}
$$name++;

Best regards!

非常謝謝 指點... 因為新手者, 是否可以更完整說明
附上自己目前程式碼...

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){


        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>"; 
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;          
        }

        echo "<tr>";
      
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      
      $sumTB033 = $sumTB033 + $row['銷售合計'];
                   
}
echo "(銷售合計)=>" . "<font color=red>".$sumTB033 ."元" ."</font>" ."</tr>". "\n";

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
$name=$row['salesname'];
if(!isset($$name)){
$$name=0;
}
$$name++;

}

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
if(!isset($$name)){
$$name=0;
}
$$name++;

Best regards!

非常謝謝 指點... 因為新手者, 是否可以更完整說明
附上自己目前程式碼...

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){


        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>"; 
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;          
        }

        echo "<tr>";
      
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      
      $sumTB033 = $sumTB033 + $row['銷售合計'];
                   
}
echo "(銷售合計)=>" . "<font color=red>".$sumTB033 ."元" ."</font>" ."</tr>". "\n";

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
$name=$row['salesname'];
if(!isset($$name)){
$$name=0;
}
$$name++;

}

micmic3 先進您好 !! 首先非常感謝不吝惜指點....
按照給我的語法... 出現結果是有顯示出最後一筆收銀員名字,
但是, 不好意思, 我這裡希望是能把以交易日期顯示結果, 秀出收銀員出現筆數
類如圖示所表示收銀員的欄位資料 黃穗婷有三筆, 王永靜有二筆, 陳世珊有五筆
就會在上面出現 黃穗婷:3 王永靜:2 陳世珊:5

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
解釋一下好了

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
//取出收銀員名字放到 name
$name=$row['salesname'];
//$$name 的意思是 把 $name 宣告成變數 =0 isset 是如果變數存在
if(!isset($$name)){
$$name=0;
}
//++ 應該就不用說了吧
$$name++;


}

這樣可以算出每個人出現的次數

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
解釋一下好了

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
//取出收銀員名字放到 name
$name=$row['salesname'];
//$$name 的意思是 把 $name 宣告成變數 =0 isset 是如果變數存在
if(!isset($$name)){
$$name=0;
}
//++ 應該就不用說了吧
$$name++;


}

這樣可以算出每個人出現的次數

不好意思, 依照先進提供語法, 跑出來是全部計算出來筆數 10筆
//取出收銀員名字放到 name
$row 變數對應欄位名, 我試著使用$row['MU002']; 或是使用$row['收銀員'];
都是一樣結果....  10筆, 而不是顯示出個別統計筆數 黃穗婷:3 王永靜:2 陳世珊:5

我這裡提供一下我的語法如下 :  是否那裡出現問題 ?? .... 不好意思, 再麻煩指點一下 謝謝~~
/* Show Field name */
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ) {
      
        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>";
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;
        }

        echo "<tr>";
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      $sumTC009 = $sumTC009 + $row['銷售付款金額'];
      $sumTA029 = $sumTA029 + $row['總折價金額'];
      
        $name=$row['收銀員'];
        if(!isset($$name)){
           $$name=0;
           }
           $$name++;
         
}
// echo "(銷售合計)=>" . "<font color=#ff0000>" .$sumTB033 ."元" ."</font>" ."</tr>". "\n";
echo "(銷售付款金額合計)=>" ."<font color=red>" .$sumTC009 . "元" ."</font>" ."</tr>". "\n";
echo "(總折價金額合計)=>" ."<font color=red>" .$sumTA029 . "元" ."</font>" ."</tr>". "\n";
echo "(黃穗婷)=>" . "<font color=red>" .$$name ."" ."</font>" ."</tr>". "\n";

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
解釋一下好了

while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
//取出收銀員名字放到 name
$name=$row['salesname'];
//$$name 的意思是 把 $name 宣告成變數 =0 isset 是如果變數存在
if(!isset($$name)){
$$name=0;
}
//++ 應該就不用說了吧
$$name++;


}

這樣可以算出每個人出現的次數

不好意思, 依照先進提供語法, 跑出來是全部計算出來筆數 10筆
//取出收銀員名字放到 name
$row 變數對應欄位名, 我試著使用$row['MU002']; 或是使用$row['收銀員'];
都是一樣結果....  10筆, 而不是顯示出個別統計筆數 黃穗婷:3 王永靜:2 陳世珊:5

我這裡提供一下我的語法如下 :  是否那裡出現問題 ?? .... 不好意思, 再麻煩指點一下 謝謝~~
/* Show Field name */
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ) {
      
        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>";
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;
        }

        echo "<tr>";
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      $sumTC009 = $sumTC009 + $row['銷售付款金額'];
      $sumTA029 = $sumTA029 + $row['總折價金額'];
      
        $name=$row['收銀員'];
        if(!isset($$name)){
           $$name=0;
           }
           $$name++;
         
}
// echo "(銷售合計)=>" . "<font color=#ff0000>" .$sumTB033 ."元" ."</font>" ."</tr>". "\n";
echo "(銷售付款金額合計)=>" ."<font color=red>" .$sumTC009 . "元" ."</font>" ."</tr>". "\n";
echo "(總折價金額合計)=>" ."<font color=red>" .$sumTA029 . "元" ."</font>" ."</tr>". "\n";
echo "(黃穗婷)=>" . "<font color=red>" .$$name ."" ."</font>" ."</tr>". "\n";


先進您好, Sorry...我更正我跑出結果...
會是以最後一筆"收銀員" 為 Key 去計算筆數
我目前語法 :
$name=$row['收銀員'];
        if(!isset($$name)){
           $$name=0;
           }
           $$name++;

這樣是秀出 : 5 而不是原先我說的全部筆數 10
這樣應該如何修正語法, 可以顯示出 黃穗婷:3 王永靜:2 陳世珊:5

謝謝 !!

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
$a='黃穗婷';
echo "(黃穗婷)=>" . "<font color=red>" .$$a ."" ."</font>" ."</tr>". "\n";

--
試過你就了解了

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
$a='黃穗婷';
echo "(黃穗婷)=>" . "<font color=red>" .$$a ."" ."</font>" ."</tr>". "\n";

--
試過你就了解了

真的很萬分感謝 micmic3 先進不吝惜指點迷津.
我這裡比較不解是 $$a 出來筆數值..., 是如何去 $$name 拿到,
因為我們前面定義的 ....
$name=$row['收銀員'];
        if(!isset($$name)){
           $$name=0;
           }
           $$name++;

似乎跟 $$a 沒有關係樣子.... ?? 是如何把 $row['收銀員'] 挑選出來數據資料讓  $$a 穫得 ....??

另外,  如何讓沒有符合條件資料自動顯示為 0
$a='黃穗婷';
echo "(黃穗婷)=>" . "<font color=red>" .$$a ."" ."</font>" ."</tr>". "\n";

譬如說 : 以交易日期條件查出資料, 當天沒有"黃穗婷" 這一個收銀員
要讓顯示為 (黃穗婷)=> 0

謝謝

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1693
    • 檢視個人資料
$name=1 變數 $name=1 這應該沒問題
$$name=1 是指以 $name 的值當做變數 所以其實是 $1=1
--
不然就是

$a=array()
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
//取出收銀員名字放到 array
if(!isset($$name)){
$a[$row['salesname']]=0;
}
//++ 應該就不用說了吧
$a[$row['salesname']]+=1;

}
用陣列去 ++ 也可以

jslin

  • 可愛的小學生
  • *
  • 文章數: 15
    • 檢視個人資料
$name=1 變數 $name=1 這應該沒問題
$$name=1 是指以 $name 的值當做變數 所以其實是 $1=1
--
不然就是

$a=array()
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
//取出收銀員名字放到 array
if(!isset($$name)){
$a[$row['salesname']]=0;
}
//++ 應該就不用說了吧
$a[$row['salesname']]+=1;

}
用陣列去 ++ 也可以

OK 非常感謝

能否再另外請教... 已能顯示出 "銷售合計" 那如果還要依照付款方式, 各別統計出
現金小計 跟 信用卡小計 (如圖檔顯示)
以下語法應該如何去判斷 $row['付款方式'] 金額合計   謝謝 !!

/* Show Field name */
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC ) ){
      
        if (++$i == 1) { // 第一筆資料顯示欄位名稱
                echo "<tr>"; 
                foreach (array_keys($row) as $val) {
                        echo "<td>".$val."</td>";
                }
                echo "</tr>". "\n" ;          
        }

        echo "<tr>";
      
        foreach ($row as $val) {
                echo "<td>".$val."</td>";
        }
        echo "</tr>". "\n" ;
      // $sumDEA040 = $sumDEA040 + $row['標準售價'];
      $sumTB033 = $sumTB033 + $row['銷售合計'];
                            
}
// echo "標準售價:" . $sumDEA040;

echo "(銷售合計)=>" ."<font color=red>".$sumTB033 ."元" ."</font>" ."</tr>" ."<br />" ."\n";
echo "(現金小計)=>" ."<font color=red>"."元" ."</font>" ."</tr>" ."<br />" ."\n";
echo "(信用卡小計)=>" ."<font color=red>"."元" ."</font>" ."</tr>" ."<br />" ."\n";