我只是在学习PHP而且我已经搜索了一段时间,但我恐怕我可能不知道如何问它,所以解释可能效果最好。基本上我有一个分组/计数查询返回3条记录。
Status Total
0 2
1 3
2 2
在我的页面上,我想显示:
Status Total
Dev 2
Active 3
Arch 2
所以我基本上只想将值0,1和2分配给文本值。我尝试创建一个数组,然后将返回数字段指定为数组。
$_status = array(0 => 'Development', 1 => 'Production', 2 => 'Archive');
while($rowStat = mysql_fetch_assoc($resDev))
{
echo "<tr><td>$_status[$rowStat['status']]</td><td>{$rowStat['devprojects']}</td></tr>";
};
非常感谢任何帮助。
感谢。
答案 0 :(得分:1)
正如您在此处看到的http://php.net/mysql_fetch_assoc字段名称区分大小写
从我在表格示例中看到的字段称为“状态”
您正在使用“状态”
您可以尝试更改
$rowStat['status']
到
$rowStat['Status']
编辑:
答案的初始版本只关注问题是什么(以及建议的pdo) 我只想补充一点,我同意这里发现的另外两个选择: 通过评论添加到giorgio的答案:你应该只为你的数据库字段使用小写名称;你也应该考虑使用表名作为前缀(而不是product_id或id,user_password而不是密码)有两个主要原因:使用连接获取结果时避免冒号并避免与mysql保留字冲突(作为id,密码)和状态是)
另一个,由Crashspeeder建议通过对该问题的评论:你肯定应该开发错误报告并在实时服务器上禁用它
答案 1 :(得分:0)
我真的不喜欢使用0,1,2来表示数据库中的命名值(除非你有一个关系)...但是使用你的设置,为什么不使用:
while($rowStat = mysql_fetch_assoc($resDev)){
switch($rowStat['Status']){
case 0:
echo "<tr><td>Development</td><td>{$rowStat['devprojects']}</td></tr>";
break;
case 1:
echo "<tr><td>Production</td><td>{$rowStat['devprojects']}</td></tr>";
break;
case 2:
echo "<tr><td>Archive</td><td>{$rowStat['devprojects']}</td></tr>";
break;
}
};
修改强>
有些人真的在寻找复制粘贴答案,所以这里是一个更新的答案,因为Sgt。大规模肛门协会的Crashspeeder扭曲了她的短裤。
创建一个查找数组以引用状态ID:
$statusArray[0] = 'Development;
$statusArray[1] = 'Production;
$statusArray[2] = 'Archive;
然后当你运行mysql_fetch_assoc()循环时,可以像这样引用statusArray查找:
while($rowStat = mysql_fetch_assoc($resDev)){
echo "<tr><td>{$statusArray[$rowStat['Status']]}</td><td>{$rowStat['devprojects']}</td></tr>";
}