0

こんにちは、おっと学び始めたばかりで、この問題に遭遇しました。通常のスクリプリング シーケンスでこのスクリプトを使用すると、アイテムのリストが生成されますが、それをクラス ファイルに配置すると、最初の行しか表示されません。何が問題なのですか? クラスファイル:

<?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 に答える