@Rozarka

MySQL. Поиск в Базе данных по одному параметру?

Изначально задание таково:
Создать сайт, содержащий список покупок. Информация о каждой покупке состоит из названия товара, цены, количества. Реализовать возможность поиска информации о покупке по названию товара.

не получается реализовать поиск. что не так, подскажите пжл?

$conn = mysqli_connect("localhost", "root", "123456");
mysqli_select_db($conn,"list");
mysqli_set_charset($conn, "utf8");
if (!$conn) {
die ("Подключение невозможно:" . mysqli_connect_error());
}

if (!isset($_POST['name'])||($_POST['name']=='')||!isset($_POST['fil'])||($_POST['filter']=='Показать все')){
$query="select name, cena from `list` where 1";}
else {$query="select name,cena from `list` where name like '{$_POST['name']}%'";}
$result=mysqli_query($conn, $query);
$query1="select distinct substring(name,1,INSTR(name, ',')-1) as name from `list`";
$result1=mysqli_query($conn, $query1);
echo "<form name='f3' method='POST' action=''>Поиск   <input type='text' name='name' placeholder='Введите название'><input type='submit' name='find' value='Найти'>";
foreach($result1 as $row1){
echo"<option>{$row1['name']}</option>";}
echo "</select>";
echo "</form>";

$query="SELECT * FROM `list`";
$result=mysqli_query($conn,$query);
echo "<table border=1><tr><td>ID</td><td>Название_продукта</td><td>Цена</td><td>Колличество</td></tr>";
foreach($result as $row){
echo "<tr><td>{$row['id']}</td><td>{$row['name']}</td><td>{$row['cena']}</td><td>{$row['col']}</td>"; echo "</td>";}
echo "</table>";
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 2
думаю, вот это не так:
$query="SELECT * FROM `list`";
$result=mysqli_query($conn,$query);

Вы в нескольких строчках выше сделали запрос с поиском, а затем замещаете его новым запросом
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
Во первых - научитесь разделять код и представление, винегрет из кода и разметки не то что отлаживать, читать тяжело.
Во вторых - $result полученный в первом куске вы нигде не используете, ни в выводе, ни в вычислениях.
Ну и в третьих - в последнем куске вы затираете ранее полученный результат выборки, так что смысл в первой выборке полностью теряется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы