<MyRusakov.ru />

Создание Интернет-магазина на OpenCart 2.0

Создание Интернет-магазина на OpenCart 2.0

Видеокурс "Создание Интернет-магазина на OpenCart 2.0" обучит Вас созданию любых Интернет-магазинов на OpenCart 2. В первом разделе курса разбираются абсолютно все возможности данного движка с примерами.

Во втором разделе создаётся полноценный Интернет-магазин, где Вы уже всё увидите своими глазами.

И, наконец, в третьем разделе курса созданный Интернет-магазин будет размещён в Интернете.

К курсу так же идут бесплатные и очень ценные Бонусы сопоставимые с самим курсом: "Как сэкономить на Яндекс.Директ до 50%", "Дропшиппинг" и "Как раскрутить Интернет-магазин".

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Видеоурок по реализации поиска на сайте

Видеоурок по реализации поиска на сайте

Почти на каждом сайте имеется поиск. И практически всегда там стоит какой-нибудь сторонний скрипт, что, на мой взгляд, не очень хорошо. Во-первых, я это знаю, потому что перебрал несколько десятков различных скриптов. Ни один из них мне не подошёл по самым разнообразным причинам, а, во-вторых, чужой код - это всегда потёмки, а я привык контролировать ситуацию полностью. Поэтому мне пришлось сделать свой скрипт поиска по сайту. Фактически, в этом видеоуроке мы реализуем поиск на сайте, который будет очень близок к моему. Я постараюсь всё тщательно и подробно объяснить и разъяснить. А так как в большинстве случаев контент сайта хранится в базе данных, то и в видеоуроке поиск будет вестись непосредственно в ней.

Очень надеюсь, что Вы поняли, что реализация поиска, если сильно не углубляться, совсем не сложное занятие, выполнив которое, Вы перестанете быть зависимыми от всяких "левых" скриптов.

Скачать видеоурок в отличном качестве можно по этой ссылке (45.1 МБ): скачать видеоурок. Запускать надо файл index.html

Скачать исходники к уроку: скачать исходники.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (56):

top1995 top1995 25.07.2011 02:25:29

Спасибо

Ответить

Zhilya Zhilya 05.02.2012 22:28:16

Подскажите пожалуйста, как сделать выборку по нескольким таблицам и постраничную навигацию для данного поиска?

Ответить

Admin Admin 05.02.2012 22:30:39

Про выборку из нескольких таблиц сразу: http://myrusakov.ru/sql-select-several.html Про навигацию по страницам: http://myrusakov.ru/php-page-navigation.html

Ответить

dallbill dallbill 08.05.2012 19:12:16

вот строчка у вас echo $results[$i]["title"]; выводит только название статьи. Мне нужно сделать чтобы выводило все поля которые есть в базе! пишу так echo $results[$i]["fio"] выводит фамилию, пишу echo $results[$i]["rbook"] номер зачетки не выводит... что не так? может быть это в запросе еще нужно искать по номеру зачетки или как? но в результате поиска вот такая строка Array ( [0] => Array ( [id] => 1 [scard] => 820601-01 [rbook] => A0255665 [fio] => Аврамчиков Андрей Викторович [stage1] => 54 [stage2] => 67 [stage3] => 89 [result] => 34 [tem] => ) )

Ответить

Admin Admin 08.05.2012 19:36:24

У Вас и так выводятся все поля в массив, а уже как выводить из массива Вы знаете. И в чём проблема?

Ответить

pavel555 pavel555 12.09.2012 14:21:09

Здраствуйте Михаил.Все делал по Вашему уроку но возникают ошибки Cannot instantiate non-existent class:mysqli.а кагда меняю подключение к базе на вот такую команду mysql_connect то выскакивает ощибка Call to a member function on a non-object помогите разобраться.

Ответить

Admin Admin 12.09.2012 14:34:53

Проверьте что php_mysqli.dll подключен в конфиге.

Ответить

mischa.samolkaev mischa.samolkaev 11.11.2012 18:07:30

А почему вы перебираете массив полученный explode() конструкцией foreach, а массив ответа for? (Мне кажется все через for надо елать)

Ответить

Admin Admin 11.11.2012 18:53:42

Без разницы, какой цикл использовать. foreach покороче, поэтому его там и использовал. А для перебора result_set я всегда использовал только while, уже давно привык.

Ответить

mischa.samolkaev mischa.samolkaev 11.11.2012 18:57:06

Помоему for быстрее

Ответить

Admin Admin 11.11.2012 19:00:49

Да, на 2-3% быстрее, но зато запись короче на 30%, а вообще не в этом дело, это как руки напечатают, так и будет.

Ответить

ppk-center ppk-center 01.12.2012 20:03:59

Пожалуйста сделаете видеоурок о поииске не по базе, а по страницам.

Ответить

malina95 malina95 20.01.2013 01:51:31

Михаил, а как можно сделать подсветку поискового слова? Пробую так return str_replace($words, "<span style = 'color: red; font-weight: bold;'>".$words."</span>", $results); но не выходит, и через preg_replace пробовал, тоже никак

Ответить

Admin Admin 20.01.2013 10:54:38

$results = str_replace(...);

Ответить

gjlevfnmnjkmrj1 gjlevfnmnjkmrj1 29.01.2013 01:16:09

Михаил подскажите. Почему текст который выводится с БД у меня не сайте отображается в виде знаков вопроса (http://s52.radikal.ru/i135/1301/6c/2435a5313438.png). Кодировки в БД следующие: (http://s019.radikal.ru/i618/1301/f7/110bdad01335.png) и со вкладки операции (http://s017.radikal.ru/i400/1301/45/1391aa0e801f.png)

Ответить

Admin Admin 29.01.2013 09:45:14

http://myrusakov.ru/php-encoding-problems.html

Ответить

gjlevfnmnjkmrj1 gjlevfnmnjkmrj1 29.01.2013 14:31:52

Прочитал статью и сделал все так как там написано. Перекодировал как написано во 2 причине (нечего не изменилось), добавил макрос mysql_query("set names utf8"); (ничего не изменилось). добавил файл .htaccess в корне сайта и тут кракозяблы просто изменились на другие (http://s017.radikal.ru/i413/1301/d4/68451998183f.png)

Ответить

Admin Admin 29.01.2013 20:25:52

Чудес не бывает. Сотни людей прошли через эту статью, я уже сотню сайтов точно создал, и никогда не выходил за пределы того, что там написано. Там всё, что нужно. Ищите ошибку, смотрите, какую кодировку выставляет браузер, сравнивайте с кодировкой документа, проверяйте 1000 раз, что написано в .htaccess, проверяйте все поля в таблицах (а не просто одну кодировку таблицы) и так далее.

Ответить

gjlevfnmnjkmrj1 gjlevfnmnjkmrj1 13.02.2013 00:55:41

Видать чудеса бывают. Уже не знаю что делать... Статья не помогла, пробовал сменить Денвер на другие сборки эффект не изменился, а браузер выставляет как надо UTF-8. Но вот что ещё интересно. Отправил знакомому (который у себя на компьютере загрузил мою БД и Сайт) и на удивление у него всё нормально отображается. Что посоветуете?

Ответить

gjlevfnmnjkmrj1 gjlevfnmnjkmrj1 23.02.2013 15:14:11

Обнаружил способ как решить проблему... Просто убрал галочку с пункта "SUPER" при выборе привилегий для пользователя.Так как в том случае, если помимо прочих привилегий для пользователя будет отмечена привилегия SUPER, то кодировка, установленная по умолчанию в настройках MySQL сервера, не будет на него действовать.

Ответить

Admin Admin 23.02.2013 15:29:56

А если сразу после подключения отправить запрос SET NAMES 'UTF-8' или SET NAMES 'CP1251'? Попробуйте, только обязательно верните SUPER. И не фантазируйте про SUPER, всегда он у меня стоит, но при этом никогда подобных проблем с кодировкой не было.

Ответить

gjlevfnmnjkmrj1 gjlevfnmnjkmrj1 23.02.2013 16:21:02

А какие могут быть последствия при отмене SUPER?

Ответить

Admin Admin 23.02.2013 21:12:47

Никаких принципиальных привилегий она не даёт, просто её никто никогда не отключает. И ещё никому она не мешала сделать нормальную кодировку. Раз Вы решили эту проблему, поздравляю, но не фантазируйте на тему связи SUPER и проблем с кодировкой. Если всё делать, как я писал в статье, то ещё ни у кого проблем не было.

Ответить

7418292 7418292 06.02.2013 15:22:26

Здравствуйте. Подскажите, почему при поиске данных которых нету в БД мне выводит как и надо "Ничего не найдено". Но при этом ещё выдает ошибку Notice: Undefined variable: results in C:\wamp\www\test.ru\index.php on line 31 Вот мой ссылка на мой php код и скриншот ошибки http://dfiles.ru/files/9ku6etu08 В строке №31 как и у вас находится return $results;

Ответить

Admin Admin 06.02.2013 18:42:47

http://myrusakov.ru/php-error-reporting.html

Ответить

7418292 7418292 07.02.2013 02:23:27

Вы хотите сказать что мне стоит просто отключить вывод данной ошибки?

Ответить

Admin Admin 07.02.2013 08:10:08

Это не ошибка. А если так хочется, то можете написать в начале скрипта $results = false;

Ответить

Сreed1 Сreed1 20.02.2013 21:53:34

Здравствуйте а где можно найти исходник вашего сайта по вашему курсу ОТ А до я?

Ответить

Admin Admin 20.02.2013 22:51:22

Их нет.

Ответить

phoenix712 phoenix712 06.03.2013 23:20:47

Доброго времени суток. Как сделать так чтобы выводилась сперва название статьи а за ней сама статья, а то сначала выводит все названия а затем сплошной текст. Заранее спасибо.

Ответить

TuMc TuMc 11.04.2013 09:54:16

а как правильно проставить ссылки? Чтобы эти заголовки вели на полную статью? Спасибо!

Ответить

Admin Admin 11.04.2013 12:18:03

Например, поставить ссылки такие: article.php?id=5, при переходе на которую выводится весь текст статьи с id=5.

Ответить

TuMc TuMc 11.04.2013 16:44:51

вывел после for вот это: echo '<a href="'.$site_url.'articles.php?category_id='.$row_search['article_id'].'">'.$results[$i]['title'].'</a><br />'; не работает..id всех статей = 1.. вот запрос: $res_search = mysql_query("SELECT * FROM `articles`") or die(mysql_error); $row_search = mysql_fetch_assoc($res_search); Подскажите плиз в чем дело?

Ответить

Admin Admin 11.04.2013 20:59:39

.$row_search['article_id'].'" - здесь тоже [$i] нужен.

Ответить

TuMc TuMc 11.04.2013 23:39:14

а можете расписать подробней? [$i] вместо ['article_id']??

Ответить

Admin Admin 12.04.2013 11:41:54

$row_search[$i]['article_id'].'"

Ответить

maxlegostaev0595 maxlegostaev0595 13.05.2013 23:28:52

Михаил, подскажи а как сделать что бы выводился не только title, но и сылка на это статью. Дополните ваш урок. ЗА ранее спасибо.

Ответить

morozov-semen morozov-semen 17.05.2013 18:57:41

Огромное спасибо. Очень полезная информация.

Ответить

7418292 7418292 25.06.2013 01:49:25

Здравствуйте Михаил. Я хотел бы попросить вас в небольшое объяснение по данному видео. А именно с какой целью вы на 6 минуте и 55 секунде преобразовываете resault_set в двумерный массив. Я понимаю что вопрос для вас прозвучал глупо. Но я не могу понять с какой целью это делается... Даже не представляете как буду вам благодарен если вы немножко подробней мне объясните.

Ответить

Admin Admin 25.06.2013 10:38:37

Потому что result_set - это не те данные, которые можно просто взять и использовать. Перед этим их нужно преобразовать в понятный тип данных, а именно массив, с которым уже можно работать.

Ответить

7418292 7418292 25.06.2013 10:40:02

А какой примерно вид имеет эта переменная до преобразования?

Ответить

Admin Admin 25.06.2013 10:43:00

Никакой, чтобы можно было с ним сразу работать.

Ответить

7418292 7418292 25.06.2013 10:44:00

Спасибо вам большое

Ответить

whaitte whaitte 26.07.2013 16:26:32

Здраствуйте, а возможно ли в этом скрипте сделать так чтоб он искал по 2м полям, к примеру: <select name="marka"> <option value="0">Любая фирма</option> </select> <select name="model"> <option value="0">Любая модель</option> </select> Если возможно то как впихнуть туда 2е имя поля?

Ответить

Admin Admin 26.07.2013 20:03:16

Можно, но тогда придется менять код. У нас получатся две выборки из базы.

Ответить

Инкогнито Инкогнито 18.09.2013 15:44:03

<?php function search($words) { $words = htmlspecialchars($words); if ($words === "") return false; $query_search = ""; $arraywords = explode(" ", $words); foreach($arraywords as $key => $value) { if (isset($arraywords[$key - 1])) $query_search .= ' OR '; $query_search .= '`title` LIKE "%'.$value.'%" OR `text_article` LIKE "%'.$value.'%"'; } $query = "SELECT * FROM articles WHERE $query_search"; $mysqli = new mysqli("123", "123", "123", "123"); $result_set = $mysqli->query($query); $mysqli->close(); $i = 0; while($row = $result_set->fetch_assoc()) { $results[$i] = $row; $i++; } $result_set->close(); return $results; } if (isset($_POST['bsearch'])) { $words = $_POST['words']; $results = search($words); } ?> помогите найти ошибку, при пустом запросе все хорошо, при любом другим пишет Call to a member function fetch_assoc() on a non-object in

Ответить

Admin Admin 18.09.2013 19:57:56

http://myrusakov.ru/php-fetchassoc.html

Ответить

firs firs 22.03.2014 10:09:29

Здравствуйте. 1. Как ограничить поиск минимум по 3 буквам, а то ищет даже одну букву и естественно выводит все записи из базы? 2. Как реализовать чтобы поиск шел по целым словам, например: если искать ВОТ, то будет найден жиВОТные, а хотелось бы чтобы искались целые слова? Заранее благодарен.

Ответить

prog prog 28.04.2014 09:10:46

У меня на сайте есть session_start(); Он нужен для изменения языка на сайте.Я создал поиск по вашим урокам, но у меня выводится сообщение "Подтвердить повторную отправку формы" как этого избежать.Как можно убрать сессию отдельно для поиска?

Ответить

alexandrdante alexandrdante 28.04.2014 17:08:35

закрывайте сессию раньше)

Ответить

prog prog 28.04.2014 18:18:52

А как закрыть такую сессию session_start(); if(empty($_GET['view'])) $view = 'index'; else $view = $_GET['view']; if($_SESSION['lang'] == '') { $lang = 'kz'; $_SESSION['lang'] = $lang; } else $lang = $_SESSION['lang']; if(isset($_POST['change_lang'])) { change_lang($_POST['lang']); header("Location: index.php?view=".$view); }

Ответить

tikkiwiki tikkiwiki 29.04.2014 11:13:38

Используйте session_destroy ();

Ответить

alexku80 alexku80 09.06.2014 23:17:40

Ребята выручайте, весь вечер убил, не могу найти ошибку, до 17 мин все делал по видео запустил проверку, выводит:Fatal error: Call to a member function fetch_assoc() on a non-object in D:\OpenServer\domains\uploadsearch\search_form.php on line 22 Строка запроса без ошибок : $query_search .= ' `img` LIKE "%'.$value.'%" OR `description` LIKE "%'.$value.'%"';

Ответить

akhotnick93 akhotnick93 11.03.2015 23:33:54

Уважаемый Михаил Русаков я уже третий раз посмотрю ваш видео урок но все равно не могу найти ошибку когда идет до функ. fetch_assoc тут уже ошибка!

Ответить

SkAiNeT SkAiNeT 21.11.2015 12:10:06

Здравствуйте,я тоже уже сотый раз пересматриваю , но никак не понимаю в чем ошибка. даже исходник скачал , все равно. Fatal error: Call to a member function fetch_assoc() on a non-object in Z:\home\search\www\index.php on line 19

Ответить

dronnord92 dronnord92 15.02.2016 12:45:16

Видеокурс по изучению HTML и CSS http://glopages.ru/affiliate/7021397

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.