Приветствую, не могу понять почему не обновляется магазин(при нажатие на кнопку "обновить" должен распаковываться архив). Архив лежит на основном домене,а обновление происходит с поддомена PHP: <div class="row"> <div class="col-md-12"> <section class="panel"> <div class="panel-body invoice"> <div class="invoice-header"> <div class="invoice-title col-md-3 col-xs-2"> </div> <div class="invoice-info col-md-9 col-xs-10"> <h3> Центр обновлений</h3> </div> </div> <? if(isset($_POST['up2'])) { $sql= file_get_contents('http://demo.ligm.ru/update.txt'); $query = mysql_query("DELETE FROM `config_data` WHERE `key`='version'"); $query = mysql_query($sql); $zip = new ZipArchive; $res = $zip->open('/var/www/open.tk/panel/mymegga55/update.zip'); if ($res === TRUE) { $zip->extractTo('.'); $zip->close(); } echo '<div class="alert alert-success"> <strong>Отлично!</strong> Магазин успешно обновлен. </div>'; } ?> <? $last = file_get_contents('last.txt'); if (config_item('version')<$last){ ?> <div class="row invoice-to"> <div class="col-md-4 col-sm-4 pull-left"> <li>Все ваши данные сохраняются.</li> <h4> <?php echo file_get_contents('/upnews.txt') ?> </h4> <p> </p> </div> <div class="col-md-4 col-sm-5 pull-right"> <div class="row"> </div> <br> </div> </div> <div class="text-center invoice-btn"> <form method="POST" name="up2"><input type='submit' value="Обновить магазин" class="btn btn-success btn-lg" name="up2" '></form> </div> <? } else { echo ' <div class="alert alert-info"> <strong>Удачных продаж!</strong> Вы используете последнюю версию магазина . </div>'; } ?> </div> </section> </div> </div> Архив не распаковываться,структура с базы данных не удаляется
Это ваш магазин? В смысле вы сами написали? Или просто его используете? В любом случае, мне жалко тех, кто использует этот магазин. Просите PHP показать ошибки.
Я же не просил что бы вы сказали что вам жалко, Я попросил помощи у тех людей которые действительно могут решить проблему,а не писать всякую ерезь
Я делал var_dump -результата не было --- Добавлено --- Там ведь есть Код (Text): <form method="POST" name="up2"><input type='submit' value="Обновить магазин" class="btn btn-success btn-lg" name="up2" '></form>
Причём тут вард_дамп то. Ну хотя, если Суррикат прав, то да, можно попробовать. А вообще php умеет показывать ошибки. Надо только его попросить. В самое начало файла вставить PHP: ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); посмотреть, какие ошибки.
Запрос в БД делает, но архив не распаковывается --- Добавлено --- Спасибо всем за помощь, вопрос решил
Не могу понять принцип создания запроса в БД(на создание таблицы) База данных(запрос) хранится в файле update.txt (соответственно файл открывается), после нажатия на кнопку обновить, не создаётся таблица. Подскажите пожалуйста Код (Text): -- phpMyAdmin SQL Dump -- version 4.0.10.17 -- https://www.phpmyadmin.net -- -- Хост: localhost -- Время создания: Мар 19 2017 г., 10:05 -- Версия сервера: 5.1.73-cll-lve -- Версия PHP: 5.3.3 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- База данных: `localhost` -- -- -------------------------------------------------------- -- -- Структура таблицы `good` -- CREATE TABLE IF NOT EXISTS `good` ( `id` int(11) NOT NULL AUTO_INCREMENT, `category` varchar(255) DEFAULT NULL, `rank` int(11) NOT NULL, `name` varchar(256) NOT NULL, `info` varchar(256) NOT NULL, `descr` text NOT NULL, `descrdop` text NOT NULL, `iconurl` varchar(255) NOT NULL, `price_rub` varchar(256) NOT NULL, `price_final` varchar(256) NOT NULL, `type_Item` text NOT NULL, `skidka` varchar(256) NOT NULL, `viewed` varchar(255) NOT NULL DEFAULT '0', `min_order` int(10) NOT NULL, `sell_method` tinyint(1) NOT NULL, `goods` text NOT NULL, `del` int(11) NOT NULL, `onmain` smallint(5) DEFAULT NULL, `lang` varchar(255) NOT NULL, `platforma` varchar(255) NOT NULL, `coop` varchar(255) NOT NULL, `janr` varchar(255) NOT NULL, `data` varchar(255) NOT NULL, `upda` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ; -- -- Дамп данных таблицы `good` -- INSERT INTO `config_data` (`key`, `value`) VALUES ('version', '2'); /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Если этот код руками в mySQL вбить, работает? Через phpmyAdmin, например. Если нет, то что пишет? Какая ошибка? Это же дамп из PMA, он по-умолчанию рабочий должен быть.
Не могу понять почему таблица не добавляет новые поля. Таблица уже создана( но не добавляет поле data,janr,platforma) хотя экспортировал же с phpmyadmin --- Добавлено --- На странице с кнопкой (код страницы в начале темы)
Код (Text): ALTER TABLE `goods` ADD `lang` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `platforma` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `coop` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `upda` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `data` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `janr` varchar(255) NOT NULL; INSERT INTO `config_data` (`key`, `value`) VALUES ('version', '2'); Этот запрос через phpmyadmin работает, а через кнопку не работает
@Swipe а если в ручную создать файл с запросом с нужной кодировкой, без коммов, без всяких бомов? --- Добавлено --- не проще error_reporting(E_ALL?
@Swipe Создавал файл с запросом Код (Text): ALTER TABLE `goods` ADD `lang` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `platforma` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `coop` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `upda` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `data` varchar(255) NOT NULL; ALTER TABLE `goods` ADD `janr` varchar(255) NOT NULL; INSERT INTO `config_data` (`key`, `value`) VALUES ('version', '2'); Ничего не изменилось
@Swipe варант а) переменная пуста б) нужно удалить переносы строк (хотя зачем?) ну и mysql_error что выдаёт?
Если в файл вставить только Код (Text): INSERT INTO `config_data` (`key`, `value`) VALUES ('version', '2'); то запрос работает
@Swipe тогда я вижу самый простой но не самый лучший выход,- создать цикл с построчным чтением и запросом, или парсингом файла
Ну если по логике смотреть: то через phpmyadmin запрос создаётся если бы не было прав,наверное не создавался.
А ты сразу пачкой запросы шлешь? И ждешь, что они будут работать? Нет, так не получится. Мультизапросы по умолчанию не работают. Для их использования нужна отдельная функция для мультизапросов. А то наворотили тут костылей, наполовину из шаманства состоящих, наполовину из тыкания пальцем в небо Записи в файл, построчное чтение, бубны, жертвоприношения...чего только не придумают, лишь бы документацию не читать.
А возможно реализовать что бы мультизапрос брал запросы из файла? Или нужно в файле с апдейтом создавать дохрена строк запроса типа $query = ... Можно ли создать один $query= multi_query(update.txt) что бы с него и брались запросы?
Ну то, что ты написал, разумеется нельзя, я про: Тут чисто синтаксически некорректно все. Да, я такой вот зануда. Но вообще - да, можно. Никто не мешает прочитать файл в строковую переменную и отдать в мультизапрос.