你的位置:
问答吧
-> PHP基础
-> 问题详情
如何将从SQL语句读取的数据赋值给一个变量?
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=MAX_Y");
我将{ MAX(YR_SC) as MAX_Y } YR_SC 的最大值 赋值给 MAX_Y ,输出的时候可以显示,但是我在语句最后加了一个条件YR_SC=MAX_Y 的时候为什么就不显示东西了?
请教一下,最近发了很多类似的帖子,都是搞不定思路,然后又换了一种思路
有没有更好的赋值方法?
作者: hh022406
发布时间: 2010-09-06
因为你还有没有查询完呢(只是正在查询)你and MAX_Y它哪知道MAX_Y是什么啊
作者: kyzy_yy_pm
发布时间: 2010-09-06
SQL code
--tryselectYR_SCasMAX_Y ,CODE,PAR,PRC_N,PRC_Ufrombse_prc_pastwhereCDE_L='".substr($code,0,11)."'andYR_SC=(selectmax(YR_SC)frombse_prc_pwhereCODE=t.CODE)
作者: Beirut
发布时间: 2010-09-06
那这样写对不对啊?
$sql=mysql_query("select MAX(YR_SC) as MAX_Y from bse_prc_p where CDE_L='".substr($code,0,11)."'");
$sql1=mysql_query("select YR_SC,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC='MAX_Y' ");
我试了,怎么还是不行啊?
作者: hh022406
发布时间: 2010-09-06
楼主还没明白么?
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=MAX_Y");
第一个红字还没有得到,第二个都开始用了你说可以么?他肯定是找不到这个东西了
作者: kyzy_yy_pm
发布时间: 2010-09-06
SQL code
$sql=mysql_query("selectMAX(YR_SC)asMAX_Y ,CODE,PAR,PRC_N,PRC_Ufrombse_prc_pwhereCDE_L='".substr($code,0,11)."'andYR_SC=(selectMAX(YR_SC)frombse_prc_pwhereCDE_L='".substr($code,0,11)."')");
作者: heyli
发布时间: 2010-09-06
PHP code
<?phpechosubstr ($row[1],12,3);?><?phpecho $row[2];?><?phpecho $row[3];?><?phpecho $row['0'];?><?phpecho $row[4];?><?php
}mysql_close($link);?>
能不能看下这个代码 哪地方出错了? 就是不显示数据
作者: hh022406
发布时间: 2010-09-06
楼主可以这样
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select max(YR_SC) from bse_prc_p)");
作者: kyzy_yy_pm
发布时间: 2010-09-06
sql语句的执行顺序,当执行where是MAX_Y根本不存在,
不知道这样行不行,你可以试试:
$sql=mysql_query("select CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select MAX(YR_SC) from bse_prc_p)");
作者: s0s0s0s
发布时间: 2010-09-06
最简单的sql的顺序:from->where->select
作者: s0s0s0s
发布时间: 2010-09-06
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select max(YR_SC) from bse_prc_p) GROUP BY CODE");
通过GROUP BY CODE 确实可以将 YR_SC=最大值的记录都显示出来,但是如果我想加一个条件:在上面的条件的基础上 计算PRC_N 所有记录的和
该怎么做?
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U,sum(PRC_N) from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select max(YR_SC) from bse_prc_p) GROUP BY CODE");
这样是不行的
请问一下啊,有啥办法没有?
作者: hh022406
发布时间: 2010-09-06
求教,高人
作者: hh022406
发布时间: 2010-09-06
请使用having, $sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U from bse_prc_p where CDE_L='".substr($code,0,11)."' having YR_SC=MAX_Y");
作者: fangroger
发布时间: 2010-09-06
但是 我想 在上面的条件的基础上 计算PRC_N 所有记录的和
该如何做?
作者: hh022406
发布时间: 2010-09-06
having 貌似不行
作者: hh022406
发布时间: 2010-09-06
你的语句可以计算出来和把,只是按code分组计算的而已。
作者: s0s0s0s
发布时间: 2010-09-06
如果不按CODE分组的话,可以计算出来和,但是只有一条记录
作者: hh022406
发布时间: 2010-09-06
那当然了,你查询最大值,他只有一个,所以只显示一行。你加上group by 分组他就按组查询最大值,所以他有多个,显示所行。你又要在此基础上求和,他也就只好按组求和了。
作者: s0s0s0s
发布时间: 2010-09-06
是啊,我加group by code 的话,再求和,它的和就是每条记录的 和 (也就是每条记录的PRC_N值) 而不是所有记录的PRC_N值的和,愁死了
郁闷
作者: hh022406
发布时间: 2010-09-06
各位,有啥办法求和没有?
作者: hh022406
发布时间: 2010-09-06
写两条语句吧,一条玩不成。
作者: s0s0s0s
发布时间: 2010-09-06
两条怎么写啊,赐教
作者: hh022406
发布时间: 2010-09-06
第一条就是上面的,你在单纯写一条求和的就是了。不要把求和跟分组查询放在一起。
作者: s0s0s0s
发布时间: 2010-09-06
我又来了
两条语句不会
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U,sum(PRC_N) from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select max(YR_SC) from bse_prc_p)");
这个只显示一条记录,如果不用GROUP BY 分组的话,如何让它循环显示?
作者: hh022406
发布时间: 2010-09-06
给出你的表结构和部分测试数据
再清晰的描述一下你的需求
max、sum 等函数默认只会产生一条查结果
作者: xuzuning
发布时间: 2010-09-06
$sql=mysql_query("select MAX(YR_SC) as MAX_Y ,CODE,PAR,PRC_N,PRC_U,sum(PRC_N),sum(PRC_U) from bse_prc_p where CDE_L='".substr($code,0,11)."' and YR_SC=(select max(YR_SC) from bse_prc_p)");
这个语句就是只显示一条YR_SC为最大值的记录,但是YR_SC这个字段有很多一样的值,比如YR_SC=2009,上面的语句只显示一条YR_SC=2009的值,我想让它把所有的YR_SC=2009的记录都显示出来,
是否够详细?
不用GROUP BY
如果用 group by 的话,sum的值就不对了
作者: hh022406
发布时间: 2010-09-06
如果用 group by 的话,sum的值就是单条PRC_N的记录值,sum就没效果了,
有没有什么办法解决?
我用两个语句也不对,就删掉了
作者: hh022406
发布时间: 2010-09-06