2010-03-07 51 views
0

我有一個基本上返回mysql查詢結果的方法。一個類中的重用方法

public function getStuff() { 
$this->sort = "myColumn ASC"; 
$query = ... ORDER BY $this->sort; 
return $data; 
} 

我想重用的結果,只能用不同的排序順序,好像我應該能夠搶到另一種方法,數據,只需調用原始方法。就像這樣:

public function getMoreStuff() { 
$this->sort = "anotherColumn DESC"; 
$this->getStuff(); 
} 

但是,儘管一個 「getStuff()」 不出所料返回數據, 「getMoreStuff()」 不返回任何東西。我確定沒有必要將整個查詢複製到我的第二種方法中,但是我無法將其包含在內。任何指導將非常感激。謝謝!與定義的方法名稱由使用可變$sort - 值類的外部

public function getStuff($sort = 'myColumn ASC') { 
    $query = "... ORDER BY $sort"; 
} 

調用它,或者從你的類內(如快捷方式。)

回答

1

夫婦:

+0

緩慢的typer - 對於重複部分你的答案,chelmertz。 – 2010-03-07 08:10:07

+0

工作就像一個魅力 - 非常感謝你的幫助! – jonathanatx 2010-03-07 08:13:53

+0

哈哈np。你填寫的重要1) – chelmertz 2010-03-07 08:50:03

0

一種方式做到這一點問題:

  1. 當getMoreStuff()調用 getStuff()中,$這個 - >排序從 getMoreStuff()是爲O按照getStuff()的排序順序排列 。 您可以通過使用getStuff($sort = "myColumn ASC")給getStuff()一個默認的 排序,然後在需要時將不同的排序順序輸入到getStuff()。

  2. getStuff()將數據返回給getMoreStuff(),然後它不返回它剛剛獲得的數據。您需要使用return $this->getStuff();(或return $this->getStuff("anotherColumn DESC");

+0

謝謝!這肯定適用於不同的使用$ SORT值,但你知道我爲什麼查詢不會同樣的方法將返回一個值,呼籲自己的時候,但作爲另一種方法調用時不會返回值?我不明白爲什麼$ this-> getStuff()在作爲我的第二個方法的一部分調用時不起作用。 – jonathanatx 2010-03-07 08:08:55

相關問題