如何在PHP smarty中优化此代码?

如何在PHP smarty中优化此代码?,php,smarty,Php,Smarty,如何在PHP smarty中优化此代码 现在我有一个让我困惑的代码,有一个简单的代码 $sql_set_land = "select * from set_new_land where id_rent_house =".Tools::getValue("id_rent_house"); //print_r($sql_set_land); $n_land = Db::rowSQL($sql_set_land,t

如何在PHP smarty中优化此代码

现在我有一个让我困惑的代码,有一个简单的代码

$sql_set_land = "select * from set_new_land where id_rent_house =".Tools::getValue("id_rent_house");
            //print_r($sql_set_land);
            $n_land = Db::rowSQL($sql_set_land,true);
            $landTitle1 = $n_land['landTitle1'];
            $landTitle2 = $n_land['landTitle2'];
            $landBuilderNumber = $n_land['landBuilderNumber'];
            $landLandMark = $n_land['landLandMark'];
            $land_1 = $n_land['land_1'];
            $land_2 = $n_land['land_2'];
            $land_3 = $n_land['land_3'];
...
...
...
            $land_30 = $n_land['land_30'];
            $land_31 = $n_land['land_31'];
            $land_32 = $n_land['land_32'];
当我搜索代码时,我需要推送值

 $this->context->smarty->assign([
                'park_space' =>$park_space,
                'recording_data' =>$recording_data,
                'clode_number' => $clode_number,
                'ad_choose_top' => $ad_choose_top,
                'ad_choose_type' => $ad_choose_type,
                'ad_choose_payment_type' => $ad_choose_payment_type,
                'ad_choose_payment_type1' => $ad_choose_payment_type1,
                'landTitle1' => $landTitle1,
                'landTitle2' => $landTitle2,
                'landBuilderNumber' => $landBuilderNumber,
                'landLandMark' => $landLandMark,
                'land_1' => $land_1,
                'land_2' => $land_2,
                'land_3' => $land_3,
...
...
...
                'land_30' => $land_30,
                'land_31' => $land_31,
                'land_32' => $land_32,

优化如何发挥作用?我可以写入数组吗?如果它可以写入数组,我该怎么办?

您的问题不在PHP代码中,而是在数据库的设计中。任何时候,如果您需要在列名中包含数字,则表明您无法保存数据

如果您扩展了
*
,这通常是一种很好的做法,可以避免在更改数据库时出现意外情况,那么您必须编写以下代码:

选择
土地所有权1,
土地所有权2,
土地建筑编号,
兰德马克,
地政1,
土地(2),
地政3,
土地4,
土地5,
陆路六号,
地政7号,
土地(8),
土地(九),
土地(第10号),
地政11,
土地(12),
土地注册处13,
地政14,
土地(15),
土地(16),
地政17,
地政18,
土地(19),
土地(20),
土地(21),
土地注册处22,
土地注册处23,
土地24,
土地(25),
地政26,
土地注册处27,
地政总署28,
地政总署29,
土地(30),
地政31,
土地注册处32
从新大陆出发
其中id\u rent\u house=:id
使用正确规范化的数据库,您可以编写如下内容:

选择
SND.landTitle1,
SND.landTitle2,
SND.landBuilderNumber,
兰德马克,
土地编号,
土地
从set_new_land作为SND
以我的身份加入土地
在L.set_new_land_id=SND.set_new_land_id上
其中SND.id\u rent\u house=:id
然后在PHP中,您可以使用:

$lands=array_列($dbResults,'land');
//或者,如果土地编号很重要
$lands=array_列($dbResults,'land','landNumber');
但是,如果无法修复数据,可以在PHP中将其转换为更合理的形式,循环计数从1到32:

$lands=[];
对于($landNumber=1;$landNumber)