У меня есть функция расширенного поиска. Все работает отлично, кроме одного AND LIKE ...
. Существует два варианта: A
или A, *AB
. Я хочу, когда я выберу A
, чтобы возвращать только результаты, которые являются A
в базе данных, и когда я выбираю A, *AB
, чтобы вернуть результаты, которые только A, *AB
.Запрос по запросу не возвращает желаемых результатов
Что происходит сейчас, что, когда я выбираю B, *AB
возвращает результаты, как для
A
A, *AB
моя форма с действием get
. Это мой запрос
$couGe=($ge == "None") ? "" : "AND c.ge LIKE '".substr($ge, 0, 2)."%'";
$active = ($this->showCouCancelled) ? "AND (c.active=1 OR c.active=7)" : "";
$active = ($this->hideCouActive) ? "AND (c.active=1 OR c.active=3 OR c.active=4 OR c.active=7)" : "";
$couName = ($cName) ? "AND course_title LIKE '%$cName%'" : "";
$couDept = ($cDept) ? "AND s.dept='$cDeptArray[0]' AND s.dept_code='$cDeptArray[1]'" : "";
$iRes = _SQLQuery("
SELECT DISTINCT c.id,s.dept,s.dept_code,c.course_title,c.active,s.year,s.sem,c.ge,c.course_type
FROM courses AS c, sections AS s, teachers as t, tea_sec_rel as tsr
WHERE s.course_id_rel=c.id AND $curYr $curSem $active $couName $couDept $psSearch $couGe
ORDER BY s.dept,s.dept_code");
меню выбора опции HTML имеет
<select name="ge" id="ge">
<option value="None">All</option>
<option value="A">A</option>
<option value="A, *AB">A, *AB</option>
</select>
В запросе это линия, которая принять ge
$couGe=($ge == "None") ? "" : "AND c.ge LIKE '".substr($ge, 0, 2)."%'";
Когда я var_dump($_GET['ge']
я вижу, что я получаю то, Я выбираю. Я очень смущен, и любая помощь приветствуется.
Текст эхо-запроса и посмотреть, что случилось. –
Извините, но какой текст нужно запросить? – Jared