<?php // Данные для подключения к БД MySql($db,$user,$pass,$server это имя БД, пользователь БД, пароль БД и сервер БД соответсвенно) $db = "price"; $user = "root"; $pass = ""; $server = "localhost"; $db_data = array(//Очень важный массив:$db_data[table]-это имя таблицы для поиска, $db_data[search]-массив имен полей в которых искать информацию, будьте осторожны!Не добавляйте все поля подряд, а то получится очень громоздкий запрос. "table" => "geri", "search" => array("field0", "field1", "field2", "field3", "field4")); /* В качестве тестирования я использовал следующую таблицу: CREATE TABLE 'geri' ( 'id' int(11) NOT NULL auto_increment, 'name' varchar(255) NOT NULL default '', 'last' varchar(255) NOT NULL default '', 'adress' varchar(255) NOT NULL default '', PRIMARY KEY ('id') ); */ // Пробуем подключиться if (!mysql_connect($server, $user, $pass)) die('Проверьте настройки для подключения к серверу MySql'); // if (!mysql_select_db($db)) die('Проверьте существование указанной базы данных'); echo "<form method='post'>";// echo "<input type='text' size=48 name='search' value='" . (isset($_POST['search'])?$_POST['search']:'') . "'>";// echo "<input type='hidden' name='submit' value='1'><input type='submit' value='Найти!'>";// // if (!empty($_POST['submit'])) {// $search = $_POST['search'];// $search=addslashes($search);//. $words = explode(" ", $search);// $sql = "SELECT * FROM $db_data[table] WHERE ";// $i = 0;// foreach($db_data['search'] as $v) {// foreach($words as $v1) {// if ($i != 0)// $sql .= "OR";// $sql .= " $v LIKE '%$v1%' ";// $i++;//увеличиваем счетчик } } if($result=mysql_query($sql))// { if(mysql_num_rows($result)){// while($r=mysql_fetch_array($result)){// echo " <b>WG $r[field0]</b> Geri $r[field1], Описание $r[field2], Ean code $r[field3], Netto/NET P90 $r[field4], "; } } else// { echo "Поиск не дал результатов."; } } else { echo "Произошла ошибка при поиске, пожалуйста обратитесь к администратору Веб-сайта за разьяснением.";// } } ?>
Спустя 1 час, 42 минуты, 51 секунда (8.08.2006 - 08:27) Leningrad00 написал(а):
А что вы хотели, он ищет по like.
Первое, что приходит в голову, сделать несколько проходов: один на строгое соответствие, потом по like. Выводить вначале результаты первого прохода, потом второго, заранее исключив из них совпадения.
Первое, что приходит в голову, сделать несколько проходов: один на строгое соответствие, потом по like. Выводить вначале результаты первого прохода, потом второго, заранее исключив из них совпадения.
Спустя 6 часов, 55 минут, 47 секунд (8.08.2006 - 15:22) Egoist написал(а):
QUOTE(Leningrad00)
А что вы хотели, он ищет по like.
Первое, что приходит в голову, сделать несколько проходов: один на строгое соответствие, потом по like. Выводить вначале результаты первого прохода, потом второго, заранее исключив из них совпадения.
Первое, что приходит в голову, сделать несколько проходов: один на строгое соответствие, потом по like. Выводить вначале результаты первого прохода, потом второго, заранее исключив из них совпадения.
А как это сделать?
Спустя 44 минуты, 22 секунды (8.08.2006 - 16:07) max_ru написал(а):
$sql .= " $v LIKE '%$v1%' ";
замени на
$sql .= "$v = '$v1'";
Но я тебе этого не говорил ;)
замени на
$sql .= "$v = '$v1'";
Но я тебе этого не говорил ;)
Спустя 44 минуты, 36 секунд (8.08.2006 - 16:51) Egoist написал(а):
QUOTE(max_ru)
$sql .= " $v LIKE '%$v1%' ";
замени на
$sql .= "$v = '$v1'";
Но я тебе этого не говорил ;)
замени на
$sql .= "$v = '$v1'";
Но я тебе этого не говорил ;)
Посоветуйте, пожалуйста, где можно еще посмотреть примеры скриптов поиска по MYSQL, мужет у вас есть?
Спустя 1 час, 6 минут, 39 секунд (8.08.2006 - 17:58) vasa_c написал(а):
Почитай сначала http://www.mysql.ru/docs/man/Fulltext_Search.html
_____________