0

嗨,我刚开始学习 oop 并且遇到了这个问题,当我以正常的脚本顺序使用这个脚本时,它会删除项目列表但是当我把它放到类文件中时,我只得到第一行有什么问题?类文件:

<?php
class getPVM{
function get ($sql){
     while($row = mysql_fetch_array($sql)){

            $id = $row["product_id"];
            $product_name = $row["product_name"];
            $price = $row["price"];

            return $list =' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';

            }
    }   
}

我这样称呼它:

$sql = mysql_query("SELECT * FROM product");
    echo $list=($getPVM->get($sql))
4

4 回答 4

2

您过早返回您的价值,并且您没有返回您的列表。试试这个:

<?php
class getPVM
{
    function get($sql) 
    {
        $list = "";
        while ($row = mysql_fetch_array($sql)) {
            $product_name = $row["product_name"];
            $price = $row["price"];

            $list .= ' <li>'.$id.' '.$product_name.' '.$price.'(PVM '.$price*0.21.') </br></li>';
        }

        return $list;
    }   
}

稍微解释一下:

  • $list .=点运算符将字符串附加到`$list`
  • return $list;在您的 while 循环中添加每个列表项后,必须在最后返回完整列表
于 2013-10-07T07:31:10.760 回答
1

您正在使用return内部循环,请尝试以下操作:

class getPVM{
    function get ($sql){
        $list = array();
        while($row = mysql_fetch_array($sql)){

            $id = $row["product_id"];
            $product_name = $row["product_name"];
            $price = $row["price"];

            $list[]=' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';

        }
        return $list;
    }
}   
于 2013-10-07T07:31:25.333 回答
-1

试试这个:

<?php
class getPVM{
  function get ($sql){
     $list = "";
     while($row = mysql_fetch_array($sql)){
        $id = $row["product_id"];
        $product_name = $row["product_name"];
        $price = $row["price"];
        $list =' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';
     }
     return $list; //or whatever you return
  }   
}
于 2013-10-07T07:31:18.280 回答
-1

使用以下代码并尝试:

class getPVM{
function get ($sql){
 $list = '';
 while($row = mysql_fetch_array($sql)){

      $id = $row["product_id"];
        $product_name = $row["product_name"];
        $price = $row["price"];

         $list .=' <li>'.$id .' '.$product_name.' '.$price.'(PVM '.$price*0.21 .') </br></li>';

        }

        return $list;
}   
}
于 2013-10-07T07:31:31.800 回答