2013-02-14 2 views
0

В файле .class.php у меня есть этот запрос.Использование значения параметра для установки переменной для критериев поиска

public function findschedules($arricao, $depicao, $airline, $aircraft) { 
    $query = "SELECT db_schedules.*, db_aircraft.name AS aircraft, db_aircraft.registration 
      FROM db_schedules, db_aircraft 
      WHERE db_schedules.depicao LIKE '$depicao' 
      AND db_schedules.arricao LIKE '$arricao' 
      AND db_schedules.code LIKE '$airline' 
      AND db_schedules.aircraft LIKE '$aircraft' 
      AND db_aircraft.id LIKE '$aircraft' 
      AND db_schedules.enabled = '1' 
      AND db_schedules.daysofweek LIKE '%{$day}%'"; 
    return DB::get_results($query); 
} 

Публичная функция используется при проведении поиска. Тем не менее, файл ссылается на файл шаблона $this->show('airport_search.tpl');, который имеет весь HTML-код и внутри него поле выбора.

<select style="border:1px solid #DCDCDC; color:#003663; font-size:11px;" class="search" name="day" id="day"> 
       <option value="0">Sunday</option> 
       <option value="1">Monday</option> 
       <option value="2">Tuesday</option> 
       <option value="3">Wednesday</option> 
       <option value="4">Thursday</option> 
       <option value="5">Friday</option> 
       <option value="6">Saturday</option> 
      </select> 

Линия ниже предназначен для поиска части строки в daysofweek колонки db_schedules таблицы. Я пытаюсь присвоить ему переменную, из поля выбора в airport_search.tpl. В идеале я хотел бы получить переменную из option value="" и назначить ее в запросе.

AND db_schedules.daysofweek LIKE '%{$day}%'"; 

Кроме того, daysofweek столбец является VARCHAR (7) поле типа, со значением по умолчанию . Они стоят днями, 0 - воскресенье, 1-6 с понедельника по субботу. Таким образом, предполагаемый вывод запроса - это поиск дня, заданного пользователем в поле выбора.

Как назначить переменную из поля опции в запрос на основе ввода пользователем в поле выбора в другом файле?

+0

Вы забыли задать вопрос –

ответ

1
$day = $_POST['day']; 

все, что нужно, чтобы получить атрибут value от выбранного варианта формы, когда он будет представлен.

Однако, не используйте $day. Используйте Mysqli/PDO и писать параметризованные запросы следующим образом:

$stmt = $pdo->prepare("...AND daysofweek LIKE ?"); 
$stmt->execute("%$day%"); 
+0

Извинения для моей некомпетентности, но я никогда не работал с '$ _POST' и' pdo' раньше, вы бы не против прояснять его немного больше, и где он должен идеально использоваться для его работы? – zzwyb89

+1

@ zzwyb89 вам не нужно ничего особенного настраивать '$ _POST'. Он автоматически не инициализируется PHP при отправке запроса с помощью метода POST. Если вы просто отправляете форму с помощью 'method = post', вы можете ее использовать. «PDO» совсем не сложно использовать, особенно если вы уже знаете, как использовать 'ext/mysql'. http://www.php.net/manual/en/pdo.construct.php –

+0

Что мне нужно сделать, чтобы включить опцию «Все дни»? Предполагаемый вывод будет просто всеми записями в таблице. – zzwyb89