首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从MySQL查询创建动态PHP switch语句

如何从MySQL查询创建动态PHP switch语句
EN

Stack Overflow用户
提问于 2011-07-14 05:51:54
回答 3查看 7.1K关注 0票数 3

这是用于添加图片,类别和评论,从电子邮件到我正在工作的相册。

我正在从电子邮件正文中提取找到的前两个类别名称,并需要将类别id赋给$cat变量,以便插入到数据库中。

我有它的工作很好的硬编码,但想让它的动态,以便更改类别名称将层叠贯穿始终。

我想要更改的switch语句:

硬编码:

代码语言:javascript
运行
复制
foreach($foundKeywords as $key => $value) {  
            if($key<=1){

switch($value)
        {
            case 'family':
            $cat='3';
            break;
            case 'friends';
            $cat='4';
            break;
            case 'fun';
            $cat='6';
            break;
            case 'places';
            $cat='5';
            break;
            case 'general';
            $cat='2';
            break;
            case 'henry';
            $cat='7';
            break;
            default;
            $cat='2';
        }

我想从MySQL表中提取类别,然后这样做:

代码语言:javascript
运行
复制
$res = mysql_query('SELECT * FROM gallery_category');
            $cat_switch_list = "";
            while($row = mysql_fetch_array($res)){
                $cat_switch_list .= "case '".$row[1]."':
                                    $cat = ".$row[0].";
                                    break;";
            }
            //////////////////////
            foreach($foundKeywords as $key => $value) {  
                if($key<=1){


                    switch($value)
                    {
                        echo $cat_switch_list;
                        default:
                        $cat='1';
                    }

从理论上讲,我相信这应该是可行的,但有些地方是不正确的。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-14 05:59:54

您最好直接使用mysql进行查询:

代码语言:javascript
运行
复制
mysql_query('select id from gallery_category where name=\''.mysql_real_escape($name).'\'');

或者从结果中生成一个数组:

代码语言:javascript
运行
复制
$result = mysql_query('select * from gallery_category');
$categories = array();
while($row = mysql_fetch_num($result))
{
  $categories[$row[1]] = $row[0];
}

然后,您只需在您的类别数组:$id = $categories[$name]中查找它,就可以找到正确的id。

如果您想生成看起来像这样的代码,可以使用var_export()将$categories变量保存为真正的php代码。是否要生成代码?

票数 2
EN

Stack Overflow用户

发布于 2011-07-14 05:57:18

根本不需要switch语句(您要求的并不是switch语句的用途)。

只需将$cat值存储在描述类别的同一个表中。然后,您只需从该表中进行选择,并且在每一行中都有所需的$value$cat

票数 0
EN

Stack Overflow用户

发布于 2011-07-14 05:58:13

执行数据库查询并将结果加载到关联数组中:

代码语言:javascript
运行
复制
$result = mysql_query('SELECT name, id FROM gallery_category');
$categories = array();
while ($row = mysql_fetch_assoc($result))
{
    $categories[$row['name']] = $row['id'];
}

foreach ($foundKeywords as $key => $val)
{
    if ($key <= 1)
    {
        $cat = $categories[$val];
        // Do whatever processing/output you need to do with this keyword
    }
}

N.B.:此代码未经测试。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6686142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档