|
|
|
| Товарищи!
Я уже 10й час перед монитором и скоро начну биться головой об стол.
Честно просмотрел около 20 тем на форуме по схожей тематике, но так и не нашел ответа.
Есть база данных MySQL в ней хранятся названия и описания (поле text называется Name и поле text называется Description).
Есть файл search.php, в котором форма из 4х input:
1)
<input type=text size=25 name=searchRequest value=".@$searchRequest.">
|
2)
<input type=checkbox name=searchName value=1 checked>
|
3)
<input type=checkbox name=searchDetails value=1>
|
4)
<input type=Submit name=searchDo value='Найти' class=searchButton>
|
А также при isset($searchDo) начинается поиск и вывод результатов:
$searchRequest = trim($searchRequest);
if (empty($searchRequest))
{
echo "Вы не ввели поискового запроса";
exit();
}
if (@$searchName == 1)
{
@$SearchInDb = mysql_query("SELECT * FROM cat_firms WHERE Name LIKE '%{$searchRequest}%' ");
$searchResult = mysql_fetch_array($SearchInDb);
while ($searchResult = mysql_fetch_array($SearchInDb))
{
echo "{$searchResult['Name']}<br>";
}
}
|
Вопрос №1.
Если я ищу одну букву - он выдает результаты
Но стоит написать хотя бы две буквы и все! Чиста страница. Он даже не выдает сообщение об ошибке.
Что я упустил?
Вопрос №2
Если пользователь отметил два чекбокса, то нужно создавать отдельное условие для каждого случая, потом сравнивать массивы и выводить разницу?
Или есть более удачный вариант?
Спасибо всем откликнувшимся! | |
|
|
|
|
|
|
|
для: rised
(14.09.2006 в 20:47)
| | 1) У вас код
откуда берётся переменная $searchName? Что в ней?
2) checkbox-ы как влияют на условие? Что они обозначают? Обычно в зависимости от их динамически изменяют SQL-запрос, для этого его оформляют в виде отдельной переменной
$query = "SELECT * FROM cat_firms WHERE Name LIKE '%{$searchRequest}%' ";
if(...) $query .= "AND ...";
if(...) $query .= "AND ...";
@$SearchInDb = mysql_query($query);
|
| |
|
|
|
|
|
|
|
для: cheops
(14.09.2006 в 20:54)
| | Извините, что описал непонятно, постараюсь исправиться:
1) $searchName - переменная берется, если отмечен checkbox искать по имени. Если отмечен - у нее значение 1.
2) Checkbox'ы влияют следующим образом, если отмечен "искать по имени" ищется в поле Name, если "в описании" - в поле Description. | |
|
|
|
|
|
|
|
для: rised
(14.09.2006 в 21:04)
| | Хм... а приведённый выше код - это весь обработчик или ещё что-то есть, ведь, если $searchName не равен 1, обращения к MySQL вообще нет? | |
|
|
|
|
|
|
|
для: cheops
(14.09.2006 в 21:10)
| | cheops, спасибо!
Дело в том, что в коде более 1000 строк, у меня видно совсем отключился мозг и я не догадался протестировать написанное в отдельном файле.
В итоге сейчас сделал отдельный php - все работает нормально.
Вы правы - скорее всего где-то дыра и запроса как такового не осуществляется.
Еще раз спасибо, извините за глупую тему ;) | |
|
|
|
|
|
|
|
для: rised
(14.09.2006 в 21:23)
| | Ты бы видел сколько я глупых тем насоздавал когда-то :) | |
|
|
|