2016-05-16 18 views
0

私はまだPHPのOOPと英語を学んでいます。
データベースからどのように結果を返すのか分かりません。私は結果を返すメソッドを書いた:データベースPHPの結果OOP

class Serial extends DbUser { 

public $history, $sn, $added, $numrows; 

function __construct() { 
    parent::__construct('localhost', 'michal', '', 'test'); 

} 

function historyProduct($sn) { 
    $result = $this->history = $this->conn->prepare("SELECT * FROM `products` WHERE sn = ?"); 
    $result = $this->history->bind_param('s', $sn); 
    $result = $this->history->execute(); 
    $result = $this->history->get_result(); 
    return $result; 
    while ($row = mysqli_fetch_array($result)) { 
     $this->sn = $row['sn']; 
     $this->added = $row['added']; 
    } 
    $this->numrows = mysqli_num_rows($result); 

} 

function __toString() { 
    return (string) $this->numrows; 
} 

} 

$sn = $_GET['sn']; 
$history = new Serial(); 
$history->historyProduct($sn); 
printf($history); 
echo $history->added; 

しかし、このメソッドは何も表示されません。

私はこれを試してみました:私が間違っているの return values from class php oop
何?

Michał。

+0

メソッドの 'return $ result;'行は、クラスの 'added'プロパティと' numrows'プロパティに何も設定されていないことを保証します。 – YvesLeBorg

答えて

0

php関数は、return文に達するまで処理しません。これは、例えば、「ブレーク」と同じ効果を持ちます。それを除いて、値を返します。

while節を実行するには、メソッドの最後にreturn文を配置する必要があります。

また、読みやすくするために、$ this-> historyメソッド呼び出しごとに結果値を設定することをお勧めします。

関連する問題