将查询中的数值结果分配给数组中的文本
我刚刚学习PHP,并且在这方面搜索了一段时间,但是恐怕我可能不知道如何提问,所以解释可能会起作用最好。基本上我有一个由/ count查询返回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,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;
}
};
编辑
有些人真的在寻找复制粘贴答案,所以这里是一个更新的答案,因为军士。 Massively Anal Society的Crashspeeder扭转了她的内裤。
创建查找数组引用对抗状态标识:
$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>";
}
代码重复太多。如果唯一改变的是该行第一列的内容,那么没有理由重印整个内容。另外,你没有修正这个错误,这是'status'中的小写'S'。它应该是一个大写S的“状态”。你的代码仍然不起作用。 – Crashspeeder 2012-03-09 16:42:24
这工作。我应该在表中指定状态字段被称为“状态”(全部小写)。在我的例子中,我有“状态”,这就是我在我的页面上的表格视图中指定的内容。有没有办法做这个数组呢? – Justin 2012-03-09 16:47:28
“$ _status”是我试图创建的数组,用于分配表中变量的值。 – Justin 2012-03-09 16:49:18
,你可以在这里看到http://php.net/mysql_fetch_assoc字段名称是区分大小写的
从我在你的桌子,看样的领域被称为“状态”
和您正在使用“状态”
你可以尝试改变
$rowStat['status']
到
$rowStat['Status']
编辑:
答案的最初版本只专注于什么问题(和建议PDO) 我只想补充一点,我同意在这里发现的另外两个optinions:通过注释添加到一个 这个答案由乔治:你应该只使用小写字母名称为您的数据库字段;还应该考虑使用表名作为前缀(product_id替代或id,user_password而不是密码),主要有两个原因:避免在使用连接访存结果时出现变形,并避免与mysql保留字(如id,password和状态)
另一种,通过对问题的评论通过Crashspeeder建议:你一定要与错误发展报告和禁用直播服务器
您可能想要将字段名称更改为小写。按照约定,变量和sql列/表/数据库名称都以小写字母写。例外是;类变量($ camelCase)和带有多个单词的$ php变量($ seperated_by_underscore)。 – giorgio 2012-03-09 16:40:01
@giorgio非常好的补充..一件事..使用下划线分隔的php变量似乎并不是一个例外:)数据库字段也应该有多个词并且下划线(在我看来)是将它们分开的最好方法 – mishu 2012-03-09 16:42:54
大声笑:你是完全正确的,这是一个除了一个例外,但是,我想op得到我的意思;)是的,我同意,多字字段/数据库字段名称也应该用下划线分隔! – giorgio 2012-03-10 12:46:42
在开发你应该把错误报告提高到'E_ALL'。这会告诉你,关键的“状态”不存在(因为它实际上是一个大写字母S的“状态”)。 – Crashspeeder 2012-03-09 16:40:50