优化PHP代码-函数显示和未定义变量的PHP通知


Optimize PHP Code - Function Displaying and PHP Notice of Undefined Variable

任何建议,下面是玩具变体的函数-函数loadProductVarients

目前其显示:-

a) 仅玩具变体名称,其中我打算实现产品名称和变体名称。例如,如果Hotwheels是公司,法拉利是产品,Zsi是其变体。

现在下面的功能只显示Zsi作为变体名称,我打算实现法拉利Zsi作为变量名称

我认为产品的变量需要添加到$temp1中,但尽管使用了许多组合,我还是无法实现。

b) 二是获取PHP注意:未定义的变量:temp1&temp2函数加载产品变量中的通知

我正在学习PHP-您的帮助和建议将不胜感激!!

编辑

你好,洛德尔,

原始功能

   function loadProductVarients($id,$minprice,$maxprice,$fuel_type){
        $mainframe =& JFactory::getApplication();
        $option = JRequest::getCmd('option');
        $database =& JFactory::getDBO();
        global $Itemid; 
        $Vcond="";
        if($minprice!="" and $maxprice!=""){
        $Vcond.=" and (v_price between ".$minprice." and ".$maxprice.")";
        }elseif($minprice){ $Vcond.=" and v_price >= ".$minprice."";
        }elseif($maxprice){ $Vcond.=" and v_price <= ".$maxprice."";}
        if($fuel_type!="")
            $Vcond.=" and v_fuel_type='$fuel_type' ";
        $sql = "Select *  from #__newcar_variants  Where v_prod_id='".$id."' $Vcond and v_status='1'";
        $database->setQuery($sql);
        $rows = $database->loadObjectList();
    $list="";
        if($rows){
            foreach($rows as $row){
                if($row->v_small_img!=""){
                    $img = "uploads/variants/".$row->v_big_img ;
                }else{
                    $img="templates/pioneer_home/images/dvd1.jpg";
                }       
    $temp1.='<li><a href="index.php?newcar&id='.$row->v_prod_id.'&vid='.$row->v_id.'">'.$row->v_name.'</a></li>';
    $temp2.='<li>Rs. '.$row->v_price.'</li>';
            }
            $list.='<div class="sliding-box-middle"><ul>'.$temp1.'</ul></div>';
            $list.='<div class="sliding-box-right"><ul>'.$temp2.'</ul></div>';
        }else{
            $list.='<p>No Variants.</p>';
        }
        return $list;
    }

  $sql = "Select *  from #__newcar_variants  Where v_prod_id='".$id."' $Vcond and v_status='1'";

以下是建议修改的代码,并进行了更改:-

       function loadProductVarients($id,$minprice,$maxprice,$fuel_type){
        $db = JFactory::getDBO();
        $Vcond="";
        if($minprice!="" and $maxprice!=""){
        $Vcond.=" and (v_price between ".$minprice." and ".$maxprice.")";
        }elseif($minprice){ $Vcond.=" and v_price >= ".$minprice."";
        }elseif($maxprice){ $Vcond.=" and v_price <= ".$maxprice."";}
        if($fuel_type!="")
            $Vcond.=" and v_fuel_type='$fuel_type' ";
        $query = $db->getQuery(true);
        $query->select('*');
        $query->from('#__newcar_variants');      
        $query->where($db->quote($Vcond), $db->quote($id), $db->quote('v_status=1'));    
        $db->setQuery($query);
        $rows = $db->loadObjectList();
        $list="";
        if($rows){
            foreach($rows as $row){
                if($row->v_small_img!=""){
                    $img = "uploads/variants/".$row->v_big_img ;
                }else{
                    $img="templates/pioneer_home/images/dvd1.jpg";
                }       
    $temp1.='<li><a href="index.php?newcar&id='.$row->v_prod_id.'&vid='.$row->v_id.'">'.$row->v_name.'</a></li>';
    $temp2.='<li>Rs. '.$row->v_price.'</li>';
            }
            $list.='<div class="sliding-box-middle"><ul>'.$temp1.'</ul></div>';
            $list.='<div class="sliding-box-right"><ul>'.$temp2.'</ul></div>';
        }else{
            $list.='<p>No Variants.</p>';
        }
        return $list;
    }

您使用的是未设置的变量的串联。

更换

 $temp1.='<li><a href="index.php?new&id='.$row->v_prod_id.'&vid='.$row->v_id.'">'.$row->v_name.'</a></li>';
 $temp2.='<li>Rs. '.$row->v_price.'</li>';

通过

$temp1='<li><a href="index.php?new&id='.$row->v_prod_id.'&vid='.$row->v_id.'">'.$row->v_name.'</a></li>';
$temp2='<li>Rs. '.$row->v_price.'</li>';

$temp1 = '';
$temp2 = '';
// CODE
$temp1.='<li><a href="index.php?new&id='.$row->v_prod_id.'&vid='.$row->v_id.'">'.$row->v_name.'</a></li>';
$temp2.='<li>Rs. '.$row->v_price.'</li>';

不过,我没有得到你的第一个问题。