頁:
[1]
讀出資料庫的某欄位進行加總
<?php$odate=$_GET['odate'];
$link = @mysql_connect("localhost","root","123456") or die("無法聯上資料庫".mysql_error());
$sql="select opp from oo where odate = '$odate' ";
$result = mysql_db_query("dragon",$sql,$link);
while(list($opp)=mysql_fetch_array($result))
{
echo $opp;
}
foreach ($opp as $value){
$total = $total + $value;
echo $total;
}
?>
我想對資料庫欄位中的 opp 所有數量進行加總
本來想說從資料庫讀到的陣列直接用array_sum
不行~
又試了foreach
也不行~所以來此請教了...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 從代碼上來看應該是新手吧
首先有一個很重要的觀念, 就是loop(無論是for, foreach, while, do)裡面的變數, 你必須在loop裡面處理掉, 你帶出來外面的話, 他只會存到最後一次的值.
在你的情況就是$total = 0; // 初始化是好習慣
while(list($opp)=mysql_fetch_array($result))
{
echo $opp;
$total = $total + $value;
echo $total;
}如果你要分開做也不是不行, 那你就得先把它弄成一個array$temp_array = [];
while(list($opp)=mysql_fetch_array($result))
{
echo $opp;
$temp_array[] = $opp; // 把數值加入array裡
}
// 然後做你要的東西
foreach ($temp_array as $value) {
???
}最後像版主所說, 有些東西是可以直接在SQL解決的, 例如你例子的sumselect sum(opp) from oo where odate = '$odate' 或是select odate, sum(opp) from oo group by odate...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> theloserbm 發表於 2016-8-8 12:16 PM static/image/common/back.gif
從代碼上來看應該是新手吧
首先有一個很重要的觀念, 就是loop(無論是for, foreach, while, do)裡面的變數, ...
那那那....我從書上的確看到可以從資料庫去處理~用sum(opp)變數
不過我不知道怎摸用php去讀資料庫處理運算後的結果ㄝ
以我的例子而言~請問該怎摸用php去讀?...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> 第一種的話比較直接
因為只返回一欄, 所以直接讀取就可以了select sum(opp) from oo where odate = '$odate'
if (list($sum)=mysql_fetch_array($result))
{
echo $sum;
}第二種其實也不難, 把返回的兩欄當作普通table就可以了select odate, sum(opp) from oo group by odate
while(list($date, $total)=mysql_fetch_array($result))
{
echo $date . '-' . $total . '<br>';
} theloserbm 發表於 2016-8-8 10:13 PM static/image/common/back.gif
第一種的話比較直接
因為只返回一欄, 所以直接讀取就可以了第二種其實也不難, 把返回的兩欄當作普通table就 ...
太好了~it works!!!
thank you very much <br><br><br><br><br><div></div> goddamnx2 發表於 2016-8-9 08:28 PM static/image/common/back.gif
太好了~it works!!!
thank you very much
<?php
echo oppcount("2016-08-18");
$link = @mysql_connect("localhost","root","123456") or die("無法聯上資料庫".mysql_error());
function oppcount($odate=""){
global $link;
$sql="select sum(opp) from oo where odate = '$odate' ";
$result=mysql_db_query("dragon",$sql,$link) or die("無法取日記資料!<br>".$sql);
$sum = mysql_fetch_array($result);
return $sum;
}
?>我嘗試把這段語法寫成函數,結果卻失敗了==//
大大please~又錯在哪了??...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div> haha~我知道問題在哪了~
$link要放到第一行
否則就會出錯誤 goddamnx2 發表於 2016-8-16 08:27 PM static/image/common/back.gif
haha~我知道問題在哪了~
$link要放到第一行
否則就會出錯誤
php 不夠嚴謹的地方 使用其他框架會強調個錯誤
頁:
[1]