Не могу правильно сделать цикл

Тема в разделе "PHP", создана пользователем phillip, 1 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    Мне надо в SQL запрос добавить строку по типу:
    $query = "SELECT * FROM `sites` WHERE `sitecategory` IN ('cars', 'finance', 'farma')";
    Но карс, финанс, и фарма- у меня значения массива. И мне их надо из массива брать и подставлять в запрос как показано выше. Делаю так:

    Код:
    $query = "SELECT * FROM `sites` WHERE `sitecategory` IN (";
    foreach ($categories as $category) {
    $query .= "'".$category."',";
    }
    $query .= ")";
    В итоге у меня получается
    $query = "SELECT * FROM `sites` WHERE `sitecategory` IN ('cars', 'finance', 'farma',)";
    Как видно, в запросе внутри скобки стоит лишняя запятая. Она добавилась через цикл вместе с названием категории. Никак не могу сообразить как от этой запятой избавиться. Как составить цикл таким образом, чтобы в последний раз он не ставил запятую?
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    PHP:
    $query "SELECT * FROM `sites` WHERE `sitecategory` IN (" implode(','$categories) . ")";
    И никаких циклов.
     
    phillip нравится это.
  3. phillip

    phillip

    Регистр.:
    4 сен 2007
    Сообщения:
    413
    Симпатии:
    15
    ыыы круто!!! :idea:
    НО! получается в итоге
    Код:
    `sitecategory` IN (cars, finance, farma)
    а должно быть
    Код:
    `sitecategory` IN ('cars', 'finance', 'farma')
    подскажите, пожалуйста, как доработать
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    Блин, вечно я забываю про кавычки.
    PHP:
    $query "SELECT * FROM `sites` WHERE `sitecategory` IN ('" implode("', '"$categories) . "')";
     
    phillip нравится это.
Статус темы:
Закрыта.