Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск товара по MySQL. Помогите пожалуйста!
 
 автор: nnndaniil   (06.07.2010 в 05:47)   письмо автору
 
 

У меня в таблице есть три колонки:
Код, Наименование, Цена
Нужно, чтобы можно было искать товар по цене, коду и наименованию. Как такое можно сделать?
Что бы грубо говоря ввевше наименование Intel выводило весь товар с наименованием Intel, а ввевши цену и наименование, только те строки, где встречается данное сочетание, а если ввести код товара то результат поиска буде всего один, т.к. код товара не повторяется.
Помогите пожалуйста реализовать данную возможность, заранее спасибо!

Вот что я писал и у меня получилось:

<html>
<head>
<title>Simple Search Engine version 1.0 - Results </title>
</head>
<body>
<center>
<?php
mysql_connect("localhost","admin","1101091") or die("Can't connect!");
mysql_select_db("BM") or die("Can't select database!");
$search_query=addslashes(htmlspecialchars($_POST['search_query']));
$result= mysql_query("SELECT * FROM Excel WHERE Id='$search_query'");
if($result){
$count= mysql_num_rows($result);
if($count>0){
for($i=0; $i<$count; $i++){
if(mysql_data_seek($result, $i)){
$row= mysql_fetch_assoc($result);
$Id= $row["Id"];
$name = $row["name"];
$cost = $row["cost"];

echo "Код товара: $Id.<br>";
echo "Наименование: $name.<br>";
echo "Цена: $cost.<br>";
};
};
}else(
"0 found");
}else{
////// query error
echo mysql_error();
};
?>
</body>
</html>

Но данный скрипт ищет только по коду (id) и выводит только код и больше нечего...

Структура БД такая:
ID -код, только цифры
Name - описание (буквы русские, англ., символы)
Cost - цена (цифры, точки, запятые)


Помогите, пожалйста, я в php не знаю, и мне даже не все понятно что написано в коде (делал по примеру). Может у кого-то есть более лучший/простой скрипт поиск? Поделитесь плиз!
Зарание всем Большое спасибо!

  Ответить  
 
 автор: neadekvat   (06.07.2010 в 11:45)   письмо автору
 
   для: nnndaniil   (06.07.2010 в 05:47)
 

С какими целями вы делаете этот поиск?
Если с учебными - то это вы рано за поиск взялись.
Если на свой рабочий сайт (а тем более, если на заказ делаете кому-то) - нанимайте спеца, чтобы он сделал вам работу.

  Ответить  
 
 автор: nnndaniil   (06.07.2010 в 16:36)   письмо автору
 
   для: neadekvat   (06.07.2010 в 11:45)
 

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

А как сделать вывод, у меня все правильно сделано? Помогите пожалуйста! (=

  Ответить  
 
 автор: neadekvat   (06.07.2010 в 17:57)   письмо автору
 
   для: nnndaniil   (06.07.2010 в 16:36)
 

Так если самому интересно - почему бы самому и не разобраться, прждем чем просить все вместо себя написать?
Зп не позволяет? Ну не смешите. Спецу тут работы минут на 10 (создать форму, посмотреть базу, написать все это, пообедать, протестировать), с вас много не возьмут.
Да и посмотрите ниже по теме - ответили ж вам.

  Ответить  
 
 автор: nnndaniil   (06.07.2010 в 22:24)   письмо автору
 
   для: neadekvat   (06.07.2010 в 17:57)
 

Просто хочется чтобы уже сейчас все работало))
Я пытаюсь разобраться, был бы у меня скрипт рабочий, я бы его ковырял =)

Тперь такая проблема:

Форма для поиска:
<form action="poisk.php" method="post">

<p align="left"><b>Поиск по остаткам:
</b>
<br>
<br>

<input type="text" name="Kod" size="20" value="Введите код">
<input type="text" name="Nazvanie" size="60" value="Введите название">

<input type="submit" name="submit" value="Искать">

<input type="reset" name="reset" value="Отчистить">

</p>

</form>

======================================

Скрипт поиска:

<?php

/* Соединение, выбор БД */

$link = mysql_connect("localhost", "root", "") or die("Не соединилось!!!");

mysql_select_db("BM") or die("Не найдена БД");

/* Выполнение SQL запроса */

$query = "SELECT * FROM Excel WHERE (UPPER(Id) LIKE '%".strtoupper($_POST['Kod'])."%')AND(UPPER(Name) LIKE '%".strtoupper($_POST['Name'])."%') LIMIT '$first_rec', '$num_rec'";

$result = mysql_query($query) or die("Запрос ошибочный");

/* Печать результатов в HTML */

print "<table>\n";

while ($line = mysql_fetch_array($result, MYSQL_NUM)) {

print "\t<tr>\n";

for ($i=1;$i<=4;$i++) { print "\t\t<td>$line[$i]</td>\n"; }

print "\t</tr>\n";

}

print "</table>\n";

/* Освобождение памяти, занятой результатом запроса */

mysql_free_result($result);

/* Закрытие соединения */

mysql_close($link);

?>



=====================================
теперь мне все-время пишет: "Запрс ошибочный"
подскажите пожалуйста, где и что конкретно нужно исправить?!

  Ответить  
 
 автор: Дмитрий Смаль   (06.07.2010 в 12:07)   письмо автору
 
   для: nnndaniil   (06.07.2010 в 05:47)
 

используя твою логику можно сделать запрос
"SELECT * FROM Excel WHERE Id='$search_query'" OR name='$search_query'" OR cost='$search_query'"

почитай про запросы с использованием LIKE
про фильтры php filter_var
и про mysql_real_escape_string

и почитай как делать выборки из базы данных
хотябы про mysql_fetch_assoc

  Ответить  
 
 автор: Лена   (06.07.2010 в 12:59)   письмо автору
 
   для: Дмитрий Смаль   (06.07.2010 в 12:07)
 

Если по цене И наименованию, то будет уже AND, а не OR.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования