我想逐個獲取變量我做錯了什麼,爲什麼我不能讓所有的數組回顯出來?方法不會返回值無法使用對象作爲數組php
<?php
class get_all{
public $id;
public $product_name;
public $price;
public $date_added;
public $det;
function get_detais(){
$sql = mysql_query("SELECT * FROM products ORDER BY id DESC ");
$productCount = mysql_num_rows($sql); // count the output amount
$det=array();
if ($productCount > 0) {
while($row = mysql_fetch_array($sql)){
$id = $row["id"];
$product_name = $row["product_name"];
$price = $row["price"];
$date_added = strftime("%b %d, %Y", strtotime($row["date_added"]));
}return $det=array($id,$product_name,$price,$date_added);
} else {
return $det= "We have no products listed in our store yet";
}
}
}
?>
,在這裏我呼籲像一個數組元素的功能:
<?php
$det=new get_all;
$det->get_detais();
echo $det[1];
?>
你期望回聲'$ det [1]'是什麼? $ det是一個對象,不是一個數組....雖然你也使用get_detais()中的一個名爲$ det的本地變量,這會讓試圖讀取你的代碼的人感到困惑。 '$ returnedArray = $ det-> get_detais(); echo $ returnedArray [1];' –
除此之外,還有其他一些錯誤的代碼。你會意識到,如果你有不止一行從MySQL返回的行,你將覆蓋'$ id'和朋友的值。所以,你只會得到你從數據庫檢索到的最後一行。 – asafreedman