MySQL: объединение двух повторяющихся запросов для создания динамического предложения WHERE - PullRequest
0 голосов
/ 24 августа 2011

Как я могу объединить эти два запроса в один, чтобы мне не приходилось повторять одни и те же строки снова и снова?

if(empty($cat_id))
{
    $sql = "
    SELECT *
    FROM root_category_contacts
    ORDER by cat_order ASC
    ";

    $items_category = $connection->fetch_all($sql);
}
else
{
    $sql = "
    SELECT *
    FROM root_category_contacts
    WHERE root_category_contacts.cat_id != ?
    ORDER by cat_order ASC
    ";

    $items_category = $connection->fetch_all($sql,array($cat_id));
}

Мне не нужно предложение WHERE, когда у меня нет cat_id.

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 24 августа 2011

Проверить, если?равно нулю или равно cat_id.Примерно так:

Редактировать на основе комментария xdazz.И предполагая, что cat_id> 0

$sql = "
SELECT *
FROM root_category_contacts
WHERE root_category_contacts.cat_id != ?
ORDER by cat_order ASC"

if(empty($cat_id)) {
    $cat_id = 0;
}

$items_category = $connection->fetch_all($sql,array($cat_id));
0 голосов
/ 24 августа 2011
if(empty($cat_id)) $where = "";
else $where = "WHERE root_category_contacts.cat_id != '$cat_id'"

$sql = "
    SELECT *
    FROM root_category_contacts
    $where
    ORDER by cat_order ASC
    ";

$items_category = $connection->fetch_all($sql);
...