从SQL COUNT()和GROUP BY获取PHP变量及其值
我试着从测试中提取“思维技能”(如分析、评估等)的变量,并将其值设置为每个测试中的测试项目数。我被困住了,任何帮助都将不胜感激。(SQL语句似乎工作正常。) 我想要的示例:$analysis=7,$application=13,等等。。。。谢谢从SQL COUNT()和GROUP BY获取PHP变量及其值,php,sql,variables,grouping,Php,Sql,Variables,Grouping,我试着从测试中提取“思维技能”(如分析、评估等)的变量,并将其值设置为每个测试中的测试项目数。我被困住了,任何帮助都将不胜感激。(SQL语句似乎工作正常。) 我想要的示例:$analysis=7,$application=13,等等。。。。谢谢 $sql = "SELECT thinkskill AS tskill , COUNT(thinkskill) AS counttskill FROM $c_keytable G
$sql = "SELECT thinkskill AS tskill
, COUNT(thinkskill) AS counttskill
FROM $c_keytable
GROUP BY thinkskill
ORDER BY thinkskill" ;
$result = mysql_query ( $sql ) ;
while ( $row = mysql_fetch_assoc ( $result ) )
{
// Example: $analyzing = 7 -->
${$row["tskill"]} = $row["counttskill"] ;
}
试试这个:
$summary = array ();
while ( $row = mysql_fetch_assoc ( $result ) )
{
$summary[$row["tskill"]] = $row["counttskill"] ;
}
// now you can get the count for 'analyzing' with $summary['analyzing']
我不建议这样做,但是如果您真的希望将信息从数组中取出并放入局部变量,您可以这样做
extract ($summary)
是的,谢谢,这很有效!!我想问一下,为什么不建议在本地安装VAR?如果采用变量格式,变量不是更容易操作吗?再次感谢您的帮助。我不推荐使用局部变量,而是让它们的名称来自动态数据(调用
extract
)。示例:假设您使用变量$userid
跟踪登录的用户。出于某种原因,有人添加了一个名为“userid”的“tskill”值。现在,当您从查询中提取数据时,$userid
将被覆盖,您将有一段很长的时间来找出原因。好的,我明白了!非常感谢你的解释。