2013-08-25 113 views
-1

任何建议PHP通告,以下是玩具变体的功能 - 功能loadProductVarients优化PHP代码 - 功能显示和未定义的变量

目前其显示: -

一个)玩具变异名称只是,其中i打算实现产品名称和变体名称。例如,如果Hotwheels是公司,法拉利是产品,Zsi是其变种。

现在以下功能只显示ZSI作为变种的名字,我打算实现法拉利ZSI的变种名称

我认为需要增加在$ temp1目录产品的变量,但是尽管采用多种组合 - 我是无法实现它。

b)第二越来越PHP公告:未定义的变量:temp1中& TEMP2注意在功能loadproductvarients

我在学习PHP的 - 你提供帮助和建议将非常感激!

编辑

你好Lodder,

原函数

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; 
    } 
+0

请为您的数据库queires使用Joomla编码标准:http://docs.joomla.org/J2.5:Accessing_the_database_using_JDatabase – Lodder

+0

Hello Lodder,建议按照编码标准重新编写代码,但会获得新通知。 5月冥想!感谢您的Joomla编码标准的链接 – Ruchika

+0

嗨,更改'$ db-> quote(v_status =='1')'为'$ db-> quote('v_status = 1')' – Lodder

回答

1

您在未设置的变量上使用连接。

更换

$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>'; 

我没有,虽然得到你的第一个问题。

+0

谢谢,但它不起作用。使用上面虽然删除错误通知,但它只显示一个产品变体。我的意思是说法拉利有3个变种 - zsi,lsi,msi。因此,使用上面的代码只显示一个变体,即zsi – Ruchika

+0

是的,正如我所说的,我没有得到您的第一个问题。变体位于v_name字段中,对吗?您是否尝试在foreach中回显某些内容($ rows为$ row)循环以查看您是否真的有3个变体?你确定你的查询返回3行吗? – Sugar

+0

是的,变体是v_name。我在第一个查询中提出的问题: - 目前,变体中的字段仅以变体名称即zxi,lxi,exi,hxi显示。虽然我实现它的目的是在变体名称下显示产品名称和变体名称。我的意思是法拉利zxi,法拉利lxi,法拉利exi和法拉利hxi。原始的sql查询正确显示 - 但只有变种。然而,产品名称,即prod_id ='$ Carmodel'以及v_name变体没有得到显示 - 尽管尝试了很多组合。 – Ruchika