2013-12-04 2 views
0

Я сделал загрузку продукта и успешно работает. Но теперь я хочу создать форму поиска, чтобы каждый мог показать результат, выполнив поиск названия продукта или категории или цены. Моя таблица содержит заголовок, цену, описание, колонку категории.Как запросить результат поиска из таблицы mysql?

Мой код не работает. Я не уверен, как это сделать правильно. Когда я захочу добавить больше столбца, он не работает. Я определенно не знаю, что не так или что мне нужно делать.

Вот мой код для поиска продукта:

<?php 

// Connects to your Database 
     mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
     mysql_select_db("product") or die(mysql_error()) ; 
     $search =$_POST['search']; 
    $data = mysql_query("SELECT * FROM manage WHERE title or category and price= '$search' ") or die(mysql_error()); 

    //Puts it into an array 
    while($info = mysql_fetch_array($data)) { 
    //Outputs the image and other data 
    echo "<img src=http://localhost/hasem/exresze/images/".$info['photo'] ."> <br>"; Echo "<b>Title:</b> ".$info['title'] . "<br> "; Echo "<b>Description:</b> ".$info['description'] . " <br>"; Echo "<b>Category:</b> ".$info['category'] . " <hr>"; } 

    ?> 

    <form action="search_product.php" method="POST"> 
    <input type="text" name="search"> 
    <input type="submit" value="Search" /> 
    </form> 
    ?> 

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

$data = mysql_query("SELECT * FROM manage WHERE title or category = '$search' ") or die(mysql_error()); 
+1

Какой у вас код для поиска? Сначала вам нужно сначала запрограммировать код, а затем обратиться за помощью к коду, а не просто запросить код. Чтобы дать вам стартер: получите пользовательский ввод из формы, SELECT в базе данных, где то, что они ввели, соответствует чему-то в БД. Подтвердите и тщательно обработайте их материалы. – James

ответ

0

Я думаю, вам нужно что-то вроде этого. Это приведет к поиску данного названия или цене категории ИЛИ.

Вы в основном нужен поисковый запрос, как этот

SELECT 
title, price, description, category, photo 
FROM `manage` 
WHERE 
title LIKE '%$title%' OR 
price LIKE '%$price%' OR 
category LIKE '%$category%' 

Вы можете сделать больше оптимизацию этого кода. Это зависит от вас, чтобы сделать фильтрацию.

<?php 

//This is the directory where images will be saved 


//This gets all the other information from the form 
$title=$_POST['title']; 
$price=$_POST['price']; 

$category=$_POST['category']; 


// Connects to your Database 
mysql_connect("localhost", "root", "") or die(mysql_error()) ; 
mysql_select_db("product") or die(mysql_error()) ; 

//Writes the information to the database 


mysql_query("SELECT title, price, description, category, photo FROM `manage` WHERE title LIKE '%$title%' OR price LIKE '%$price%' OR category LIKE '%$category%' ") ; 
//Handle the result 
?> 

<div id="contact"> 
    <h1>Add New Product.</h1> 
    <form action="admin.php" method="POST"> 
     <fieldset> 
      <label for="title">Product Title<span>*</span></label> 
      <input type="text" name="title" id="name" placeholder="Enter your product title" /> 
      <label for="price">Product Price $<span>*</span></label> 
      <input type="text" name="price" id="name" placeholder="Enter your product price" />   
      <label for="category">Product Category <span>*</span></label> 
      <select name="category" id = "myList"> 
       <option value = "Cloth">Cloths</option> 
       <option value = "Honda">Honda</option> 
       <option value = "Book">Book</option> 
       <option value = "Computer">Computer</option> 
      </select> 
      <input type="submit" value="Search" /> 
     </fieldset> 
    </form> 
</div> 

Примечание: Это псевдо-код, который я редактировал из вашего кода.

+0

Привет, сэр все еще не работает. Пожалуйста, дайте мне другой способ. – user3051584

0

Как я понял, вам понадобится такой запрос: (я добавил описание в search_string, это обычная практика).

mysql_query('SELECT * FROM `manage` WHERE `title` LIKE "%$search_string%" OR `description` LIKE "%$search_string" OR (`price`>$min_price AND `price`<$max_price') OR `category`=$category); 

Не проверено, но не должно быть трудно заставить его работать. Также вы должны делать инструкции «И» с дополнительной логикой, если вы хотите сузить фильтр несколькими полями.

Вы можете использовать mysqli, или это не будет работать на PHP 5,5

Кроме того, обычно работают на жидком, лучше проверить, если файл был загружен, прежде чем сделать запись в базе данных, если вы не хотите, чтобы сделать запись так или иначе.

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