渡されるパラメータに応じて変更する必要があるMySQLクエリがあります。簡単に聞こえますよね?問題は、パラメータが「0」の場合、すべてのレコードを取得するために必要なことです。
これどうやってするの?
これが私がこれまでに持っているものです。
public function getLatestWork($numberOfSlides, $type = 0) {
$params = array();
$params["numberOfSlides"] = $numberOfSlides;
$params["type"] = $type;
$STH = $this->_db->prepare("SELECT slideID
FROM slides
WHERE visible = 'true'
AND type = :type
ORDER BY order
LIMIT :numberOfSlides;");
$STH->execute($params);
$result = $STH->fetchAll(PDO::FETCH_COLUMN);
return $result;
}
更新:$numberOfSlidesは問題とは無関係です。常に設定された数の結果を返します。すべては$type
次のとおりです。「0」(デフォルト)に設定されている場合、WHEREステートメントのその部分は基本的に無視されます。「1」や「2」などに設定されている場合は、そのタイプのレコードのみをプルします。
もちろん、$typeの値に応じて$STHの値を変更することもできますが、もっと良い方法があるかどうか疑問に思いました。