Forum Webscript.Ru
Программирование => PHP => Тема начата: vlwm от 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:
-
$sql = "select * from imgs";
if(sizeof($themes) > 0 && sizeof($authors) > 0) $sql .= " where";
for($i=0;$i if($i>0) $sql .= " and";
$sql .= " themes=\'".$themes[$i]."\'";
}
if(sizeof($themes) > 0 && sizeof($authors) > 0) $sql .= " and";
for($i=0;$i if($i>0) $sql .= " and";
$sql .= " authors=\'".$authors[$i]."\'";
}
?>
что то типа такого
-
А циклом решить проблему большого количества логических операторов?
-
:-)))
Пока писал свою мессагу, Razor уже успел накатать подробнее...
-
народ вам ничего не говорит словосочетание "ДРУГИЕ пути" ?
-
Unregistered
Я лично "ДРУГОГО пути" не вижу.