Автор Тема: php&mySQL  (Прочитано 3740 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vlwm

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 3
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
php&mySQL
« : 05 Января 2002, 11:36:34 »
Вопрос по PHP&mySQL: у меня есть таблица IMGS в БД с полями ID, DATE, THEMES, AUTHORS, NAME, DESCRIPTION. От пользователя я получаю через форму массивы $themes и $authors с допустимыми значениями полей THEMES и AUTHORS. То есть если пользователь в форме выбрал checkbox\'ами, например, 2 темы тема1 и тема2 и 3 авторов автор1, автор2 и автор3, то $themes = array(0 => "тема1", 1 => "тема2"), а $authors = array(0 => "автор1", 1 => "автор2", 2 => "автор3"), а цель состоит в том, чтобы выбрать из таблицы те записи, в которых THEME=автор1 или 2, а AUTHOR=автор1, 2 или 3. Меня интересует, как составить SQL-запрос. Мне приходила идея перечислить элементы массивов и склеить из них SQL-запрос с помощью AND, OR и (), но эта идея не подойдет при наличии по несколько десятков элементов в массивах $themes и $authors. Есть ли здесь другие пути?:insane:

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
php&mySQL
« Ответ #1 : 05 Января 2002, 12:45:06 »

<?
$sql "select * from imgs";

if(
sizeof($themes) > && sizeof($authors) > 0$sql .= " where";

for(
$i=0;$i<sizeof($themes);$i++) {
  if(
$i>0$sql .= " and";
  
$sql .= " themes=\'".$themes[$i]."\'";
}

if(
sizeof($themes) > && sizeof($authors) > 0$sql .= " and";

for(
$i=0;$i<sizeof($authors);$i++) {
  if(
$i>0$sql .= " and";
  
$sql .= " authors=\'".$authors[$i]."\'";
}
?>

что то типа такого
Евгений aka Razor,

Оффлайн Dj Fly

  • Simply Dj :-)
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.digitals-pace.com
php&mySQL
« Ответ #2 : 05 Января 2002, 12:52:56 »
А циклом решить проблему большого количества логических операторов?

Оффлайн Dj Fly

  • Simply Dj :-)
  • Постоялец
  • ***
  • Сообщений: 157
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.digitals-pace.com
php&mySQL
« Ответ #3 : 05 Января 2002, 12:54:12 »
:-)))
Пока писал свою мессагу, Razor уже успел накатать подробнее...

  • Гость
php&mySQL
« Ответ #4 : 09 Января 2002, 03:15:21 »
народ вам ничего не говорит словосочетание "ДРУГИЕ пути" ?

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
php&mySQL
« Ответ #5 : 09 Января 2002, 14:24:41 »
Unregistered
Я лично "ДРУГОГО пути" не вижу.
Евгений aka Razor,

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28