Моя голова курит ;-) и со всей информацией, которую я прочитал здесь, я не получил разрешение.
У меня есть такая форма:
форма
Мне нужно создать Mysql Query select на лету. Флажки могут быть разными. Только один или два или три или четыре или ..., это до пользователя. Из выбранных флажков мне нужно построить запрос Mysql.
я действительно ценю это, кто-то может мне помочь.
Это моя функция. до сих пор ... мне нужно добавить AND для запроса SQL.
Я много пробовал, но ничего не работает.
function wdw_get_data_answer_select($mysqli, $array_selected) {
$sql_1 = '';
foreach ($array_selected as $key => $value) {
if ($key == 'gender' && !empty($value)) { $sql_1 .= "gender = '".$value."'"; }
if ($key == 'age' && !empty($value)) { $sql_1 .= "age = '".$value."'"; }
if ($key == 'education' && !empty($value)) { $sql_1 .= "education = '".$value."'"; }
if ($key == 'department' && !empty($value)) { $sql_1 .= "department = '".$value."'"; }
}
$sql = "SELECT `gender`,`age`,`education`,`department`,`code_numbers` FROM ".TABLE_ANSWERS_BASIC_SELECT." WHERE ".$sql_1;
if ($stmt = $mysqli->prepare($sql)) {
$stmt->execute();
$stmt->store_result();
//printf("Errormessage: %s\n", $mysqli->error);
if ($stmt->num_rows > 0 ) {
$stmt->bind_result($gender, $age, $education, $department, $code_numbers);
while ($stmt->fetch()) {
$select_content .= $code_numbers.',';
}
}
}
$stmt->close();
$select_content = substr($select_content, 0, -1);
return $select_content; }
Вот таблица SQL
Пример:
если флажок установлен как
TEXT_FEMALE и TEXT_AGE_2 и TEXT_AGE_3 TEXT_EDUCATION_2
SELECT * FROM `TABLE` WHERE `gender` = TEXT_FEMALE and `age` = TEXT_AGE_2 or `age` = TEXT_AGE_3 and `education` = TEXT_EDUCATION_2;
и скажем, у TEXT_AGE_3 нет TEXT_FEMALE, как я могу отфильтровать TEXT_MALE?
я попробовал
SELECT * FROM `TABLE` WHERE `gender` IN('TEXT_FEMALE') and `gender` = TEXT_FEMALE and `age` = TEXT_AGE_2 or `age` = TEXT_AGE_3 and `education` = TEXT_EDUCATION_2;
работает, но
но если флажок установлен как
TEXT_FEMALE и TEXT_AGE_2 и TEXT_AGE_3 TEXT_EDUCATION_2 И TEXT_DEPARTMENT_1 И TEXT_DEPARTMENT_2
я попробовал
SELECT * FROM `TABLE` WHERE `gender` IN('TEXT_FEMALE') and `gender` = TEXT_FEMALE and `age` = TEXT_AGE_2 or `age` = TEXT_AGE_3 and `education` = TEXT_EDUCATION_2 and `department` = TEXT_DEPARTMENT_1 or `department` = TEXT_DEPARTMENT_2
выбранный ответ не является основным.
- TEXT_FEMALE Ženska
- TEXT_MALE Мошки
- TEXT_AGE_1 Pod 30 лет
- TEXT_AGE_2 до 30 до 50 лет
- TEXT_AGE_3 Nad 50 let
- TEXT_EDUCATION_1 Poklicno usposabljanje
- TEXT_EDUCATION_2 Штудия
- TEXT_EDUCATION_3 Нити
- TEXT_DEPARTMENT_1 Производня
- TEXT_DEPARTMENT_2 Uprava
- TEXT_DEPARTMENT_3 Другой (Vzdrževanje, Logistika, Kakovost)
Надеюсь, я объяснил это понятно.
Я немецкий парень. Я надеюсь, что мой английский в порядке; -)