这是为了添加图片,类别和评论从电子邮件到照片库我正在工作。
我将从电子邮件正文中提取前两个找到的类别名称,并需要将类别id分配给$cat变量以插入db。
我有它的工作精细硬编码,但希望使其动态,以便更改类别名称将级联整个。
我要更改的switch语句:
硬编码:

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表中提取类别,并按如下方式执行:
$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';
                    }

从理论上讲,我认为这应该行得通,但有些事情是不对的。
有什么建议吗?

最佳答案

最好直接使用mysql查询:

mysql_query('select id from gallery_category where name=\''.mysql_real_escape($name).'\'');

或者从结果生成数组:
$result = mysql_query('select * from gallery_category');
$categories = array();
while($row = mysql_fetch_num($result))
{
  $categories[$row[1]] = $row[0];
}

然后您可以在categories数组中查找正确的id:$id = $categories[$name]
如果您想要生成代码,并且它看起来像这样,那么可以使用var_export()将$categories变量保存为真正的php代码。是否要生成代码?

07-25 23:06
查看更多