2013-03-18 1 views
-2

У меня есть раскрывающееся меню, которое я использую для вас, и это приводит к значению, указанному на следующей странице. Я хотел бы использовать это значение, чтобы определить, где выбрать. Таким образом, возможными значениями являются автомобиль и игрушки. Поэтому я хотел бы позволить пользователю использовать раскрывающееся меню, чтобы выбрать автомобиль, который приводит к тому, что база данных выбирается из автомобиля, чтобы найти элемент. Если пользователь выбирает игрушки, я бы их выбрал из игрушек, чтобы найти предмет. Когда я пытаюсь использовать этот код, я просто получаю сообщение об ошибке. Если я удалю «% item%», ошибка исчезнет. Любая помощь будет любима. Благодарю.Выберите * От '% item%'?

Посылаем

<form action="search.php" method="post"> 
<select> 
<option value>Choose A Item</option> 
<option value="car" name="item">Car</option> 
<option value="toys" name="item">Toys</option> 
</select> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

Поиск

$term = $_POST['term']; 
$item = $_POST['item']; 

$query = mysql_query("select * from '%$item%' where Items like '%$term%'"); 
if(mysql_num_rows($query) <= 0) 
{ 
echo "<center>No results. Please try another item.</center>"; 
} else { 
while ($row = mysql_fetch_array($query)) { 
echo "<p2>"; 
echo $row['Items'], ' - Location ' .$row['Loc']; 
echo '<br/><br/>'; 
echo "</p2>"; 
} 
} 
?> 
+0

Параметр ' '% элемент%' 'должен быть заменить имя таблицы. – hjpotter92

+0

не использовать mysql_ * .. кто-то еще скажет вам, почему – shnisaka

+0

Я хочу, чтобы выпадающий элемент меню определял имя таблицы. Таким образом, автомобиль скажет, чтобы он искал настольный автомобиль. Игрушки с подсказкой, чтобы искать в таблице названия игрушек. Просто интересно, возможно ли это. Благодарю. –

ответ

-1

Я думаю, что ваш запрос должен быть изменен на: $query = mysql_query("select * from '$item' where Items like '%$term%'");

+0

SQL injection alert - не использовать mysql_ * - см. PDO – Ross

+0

Я знаю, что это нехорошо, я просто пытаюсь решить проблему в контексте вопроса. Однако я все еще слишком неосторожен. Спасибо, что напомнили. –

0

1.) - не использовать mysql_query - его устаревшую библиотеку, и запрос, как написано выше, подлежит SQL-инъекции - самый общий компромисс в Интернете.

2.) Не используйте как «% ...%», так как это невозможно проиндексировать и будет ужасно медленным на любой таблице средних размеров или больше. попробуйте хотя бы удалить первый%, чтобы разрешить индексирование.

http://php.net/manual/en/book.pdo.php

Смежные вопросы