Я в настоящее время Хавин вопрос со следующим кодом:Выберите заявление против переменного списка в SQL
<form action="" method="post">
<input type="text" name="term" placeholder="Search Terms"/>
<select id=""drop"" name="drop"">
<option value="CODE">Code</option>
<option value="SCINAME">Scientific Name</option>
<option value="COLLECTOR">Holder</option>
<option value="DATA">Data</option>
</select>
<br/>
<button type="submit" class="button primary">Search</button>
</form>
<?php
if (!empty($_REQUEST['term'])) {
$term = mysql_real_escape_string($_REQUEST['term']);
$drop = ($_REQUEST['drop']);
$sql = "SELECT * FROM ANIMAIS WHERE '%".$drop."%' LIKE '%".$term."%'";
$r_query = mysql_query($sql);
while ($row = mysql_fetch_array($r_query)){
echo '<br />code: ' .$row['CODE'];
echo '<br />Name: ' .$row['SCINAME'];
echo '<br /> Colector: '.$row['COLLECTOR'];
echo '<br /> Local: '.$row['LOCAL'];
echo '<br /> Data: '.$row['DATA'];
echo '<br /> Descr: '.$row['DESCRIPTION'];
echo '<br />';
}
}
?>
Проблема заключается в том, что код не «запустить» переменное падение $, но если я удалить выпадающий список из формы и измените следующую строку:
$sql = "SELECT * FROM ANIMAIS WHERE '%".$drop."%' LIKE '%".$term."%'";
к
$sql = "SELECT * FROM ANIMAIS WHERE SCINAME LIKE '%".$term."%'";
Это делает работу, но поиск в столбце SCINAME, то, что я не делаю, позволяет выпадающему списку выбрать столбцы SQL для запроса, но фактическое решение работает не так хорошо.
Заранее благодарим за помощь.
Есть ли причина, по которой у вас есть четыре символа '' 'на вашем' select id'? – mattfryercom
'
Никогда не связывайте данные от пользователя к SQL-запросам. Используйте параметры. –