По быстрому набросал скрипт для поиска по предпологаемому каталогу товаров, который хранится не в БД, а в текстовых файлах.
Формат файла (goods.txt) такой:
HTML |
5|2|mp3 плеер iPod 1Гб.||||||1|1960.00|68.77|1820.00|||0.00|||;2;5; 6|3|mp4 плеер iPod 1Гб.||||||1|2030.00|71.22|1885.00|||0.00|||;3;6; 2|4|LG|LG|DVDLG1||||1|2380.00|83.50|2210.00|||0.00|||;4;2; 1|4|Toshiba|Toshiba|DVDtosh1||||1|2100.00|73.68|1950.00|||0.00|||;4;1; 7|5|Домашний кинотеатр Toshiba |Домашний кинотеатр Toshiba |||||1|8400.00|294.73|7||0.00|||;5;7; 4|6|LG LCD|LG LCD|||||1|29400.00|1031.57|27300.00|||0.00|||;6;4;
|
Это сам скрипт:
PHP |
<?
$filebasa = "/goods.txt"; $fileb = file($filebasa);
foreach ($fileb as $key => $value) {
$dt = explode ("|", $value);
$text = $_POST['text']; $text = strtolower($text); $url = $value; $www = stristr($url,"$text");
$dt2 = explode (";", $www);
if($dt2[1]==$dt[1]) { echo "<a href=safe.php?groopmore=$dt[0]>"; if ($dt2[1]==$dt[1]) { echo " $dt[2]</a><br>Стоимость: $dt[9]<br>Описание:<br>$dt[15]<br><hr>" ;} }
}
|
А это форма запроса:
HTML |
<form action='search.php' method=POST> <input name='text' type='text' value=''> <input type='submit' value='Поиск по коталогу'> </form>
|
Работу
скрипта можно здесь посмотреть
работа поискового скриптаТак вот народ, если не затруднит, как и чем можно его ещё доработать для лучшего поиска, но чтоб оставался этот
скрипт таким же простым как веник...
.
Спустя 10 часов, 13 минут, 24 секунды (6.03.2009 - 23:18) kirik написал(а):
Цитата (timpnz @ 6.03.2009 - 05:05) |
чем можно его ещё доработать для лучшего поиска |
Базой данных
Цитата (timpnz @ 6.03.2009 - 05:05) |
скрипт таким же простым как веник... |
Да он и так простой, единственное я бы заменил foreach на for (будет жрать в 2 раза меньше памяти) и не пойму зачем две проверки
if($dt2[1]==$dt[1]), а точнее зачем они вообще нужны?
Вариант такой:
PHP |
if(isset($_POST['text'])) { $file = file('./goods.txt'); for($i = 0, $c = count($file); $i < $c; $i++) { if(stristr($file[$i], $_POST['text'])) // сначала смотрим есть-ли совпадения, а потом уже работаем со строкой. { $data = explode ('|', $file[$i]); echo '<a href="safe.php?groopmore='.$data[0].'">'.$data[2].'</a><br>Стоимость: '.$data[9].'<br>Описание:<br>'.$data[15].'<br><hr>'; } } } |
_____________
Alitim Я не волшебник, я только учусь...