@kna999

Решение или как реализовать поиск по сайту из списка в файле?

Всем привет, нужен поиск для сайта с возможностью выбора и загрузки файла допустим excel с двумя столбцами, в первом id товара, второй количество и выдача товаров из списка внутри сайта, как реализовать ? Или может есть решение?
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 2
artloveyou
@artloveyou
Тут надо начать со схемы таблицы в файле и схемы таблицы в базе. А так алгоритм примерно такой:
1. Пишется загрузчик файла (или берется готовый)
2. Пишется парсер загруженного файла xls (или берется готовый)
3. Распарсеные параметры подставляются в запрос к базе.
Ответ написан
Комментировать
@Ilya12345
Есть два варианта:
  • Первый через базу, например ты вытаскиваешь значения из экселя и пихаешь в базу, дальше ищешь по ней.
  • Второй вариант конвертировать экселевский файл в csv и уже через поиск на js делать поиск по нему.


Первый более предпочтительнее поскольку он быстрее за счет поиска через базу.

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

Вот простейший перегон данных из csv в базу:
например файл base.csv содержал что то вроде:
23;vk.com
24;https://yandex.ru

$mysqli = new mysqli('localhost','root','','test'); //соединение с уже созданной базой
if ($file = fopen("base.csv", "r")) { //прочтение файла .csv
    while(!feof($file)) { //построчное чтение в цикле
        $line = fgets($file);//присвоение прочитанного файла в переменную.
		$line = explode(';',$line); //распиливаем значения по точке с запятой
		$id = $line[0]; //первое значение до точки запятой
                $url = $line[1]; //второе значение после точки запятой
		$sql = "INSERT INTO `screen` (`id`, `id_site`, `url`) VALUES (NULL, '$id', '$url');"; //готовим к добавлению в базу новых значений
		$mysqli->query($sql); //выполняем запрос в базу
    }
    fclose($file); //заканчиваем чтение файла
}
$mysqli->close();//закрываем соединение с базой
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы