как и написал в самом начале вопроса "я новичок, тонкостей не знаю".Тут вопрос не столько в опыте или каких-то тонкостях... Даже чисто логически - открыть любую страничку с картинками с любого сайта, 99% в src будет указан прямой линк на картинку. Вопрос - почему так делают "не только лишь все" должен быть первым в списке. И ответ - по тому что файловая система в вебе уже работает, и для ее работы вообще больше ничего не надо делать программно, все реализуется средствами фс и серверного ПО.
2 я хотел путь хранить к картинке, но подумал надо пробовать хранение через бдВсе "хотелки" должны быть обоснованы некоторыми очевидными преимуществами перед другими методами. Чисто попробовать в пет проекте конечно хорошо, но функциональной пользы в таком подходе ноль.
только приведённый код выше работает который в ту же директорию сохраняет, странно это, ...Для примера, есть у вас папка uploads в папке где лежит скрипт (хотя это не очень хорошая практика), далее в корне диска есть такая же папка, а так же еще десяток папок с таким же названием по всему диску в разных директориях. Куда писать будем? Это так, информация к размышлению...
кстати имя папки где собраны файлы называется uploads
он администраторОго, с пользователя который знает только как нажать 2 кнопки скакнул до администратора... Нормально так... И такие "файлы для переноса настроек сайта" называются конфигурацией, и обычно в файлах же и хранятся. Опять же, ваше дело как извращаться и что вас к текущему решению привело...
1. начну с того что было сказано, что дампить базу массивом это маразм, для этого есть другие варианты, я рассчитывал, что вы предложите кардинально другое решение, но, вы просто причесали мой вариант, по сути ответив просто на мой вопрос - как правильно создать массив и записать его в файл. тогда спрошу, к чему было нужно все эти изречения что дампить так это маразм ?По тому что вопрос в таком виде выглядит как попытка сделать что-то нормальное через жпу. Ну, на самом деле примерно так и вышло. Почему это все еще хреновое решение - ниже.
2. вы опять идете по своему пути не зная всего задания, вы утверждаете что не надо писать в файл и сохранять его, хотя по заданию ужен еще на всякий случай сохраненный файл на сервере, ну да ладно, это лирика.Естественно, я решаю поставленную задачу наиболее эффективно. Нигде не написано что вам нужен файл на сервере. Ваше же описание что клиент нажимает кнопку - скачивается файл.
3. вторая часть, заливка в базу при вашем решение не будет работать, вы льете со всеми теми данными что слили, то есть вы слили с supplier_id=3, так и льете, так же вы льете с тем же что должно идти по AUTO_INCREMENT а у вас там что ? чем это закончится ?Во первых - я не написал там вставку именно по той причине что не знаю как организован перенос, вы так и не ответили будут ли это новые таблицы или данные будут втыкаться в существующие, откуда берется новый $supplier_id и тд... Естественно там и запросы разные будут, и данные в полях надо поменять.
на этом я думаю можно закончить, так как нечего кардинально другого вы предложить не можете кроме моего маразматического варианта.Еще раз - есть куча вариантов, вопрос в том что изначально код выглядит хреновой попыткой сделать все через жеппу, а вместо пояснений "зачем" только необоснованная агрессия и слегка завышенное чсв. И да - такой вариант "переноса" настроек не есть хорошо. Вы передаете пользователю произвольные данные, которые он может спокойно изменить и залить на другой сервис. Учитывая что в коде судя по всему нет никакой защиты, влепить инъекцию дело 2 минут. Я не знаю как устроена система, в которой нужен такой перенос, однако уверен, зная что из себя представляет вся система, я бы решал вопрос иначе. Как минимум пользователю отдавать серверные данные идея так себе.
как добавить из массива в таблицу я прекрасно знаю, уже все сделано и все работает.Рад за вас.
$productArray = json_decode($productResponse, true);
$productArray = json_decode($productResponse);
Зачем второй раз, еще и неправильно? и я хочу ее перевести в arrayДокументация это для слабаков, да...
$productArray = json_decode($productResponse);
var_dump($productArray);
и сразу все станет понятно. каких ответов вы ждете ?Вы реально прикалываетесь, или читать не умеете?
То есть тупо перенести 8 таблиц с 1 сервера на другой? Или перенести только данные в уже существующие на другом сервере таблицы?это раз
номер настройки supplier_id отличается от донорского
вопрос только в том знаете ли вы его заранее, или надо смотреть целевой сервер?Это два.
если вы привыкли решать только стандартные задачи в своих стандартных рамках, так и скажите, что данная задача выходит за ваши рамки.Не надо плакать, задача вполне простая, просто архитектура выглядит не фонтан, но в целом ничего космического. Банальное чтение и запись.
/*индексы тут не нужны, и индекс начинается с нуля , а не с 1*/
$tables = ['loadprice_categories', 'loadprice_schema', 'loadprice_pricing'];
$export = []; // сразу создаем массив
/*тут соответственно ключ вам нафг не сдался*/
foreach ($tables as $table) {
//при импорте вам понадобится чистое имя, без префикса, по этому делаем 2 переменных!
$prefixtable = DB_PREFIX.$table;
/*тут у вас результат, а не запрос, называйте переменные правильно сразу,
если supplier_id у вас цифровой (int), кавычки не нужны, объединения тоже,
если ваша $this->db поддерживает подготовленные выражения - надо их использовать,
->rows это что? Может ->rows() ? */
$result = $this->db->query("SELECT * FROM `$prefixtable` where supplier_id= $supplier_id ")->rows;
/*в резалт попадает массив строк? Тогда никакой форич тут вообше не нужен*/
$export[$table] = $result;
}
/*Сохранять файл не нужно, сразу отдаем данные пользователю*/
header('Content-disposition: attachment; filename=supplier_'.$supplier_id.'_settings.json');
header('Content-type: application/json');
echo json_encode($export);
exit();
$json = file_get_contents('/path/to/loaded/file.json');
$data = json_decode($json,1);
foreach ($data as $table=>$lines){
foreach($lines as $line){
/*тут уже зависит от того есть таблицы или нет, какой $supplier_id и тд,
просто записываем все пары ключ - значение из $line в таблицу DB_PREFIX.$table
Если не знаете как - напишите в коменте - "не знаю как добавить из массива в таблицу!"*/
}
}
//все.
извините, но если вы считаете это маразмом, то это ваше право,Я бы сказал обязанность, как более опытного в предмете, на ресурсе который специализируется как - цитирую: "узкоспециализированный сервис вопросов и ответов, предназначенный для IT-специалистов и всех тех, кто отчаянно пытается ими стать". Как куратор по теме, я вполне могу оценить как качество, так и назначение опубликованного кода, а так же предложить варианты решения. Так как невозможно сказать что за задачу вы решаете, а сами вы на этот вопрос стесняетесь отвечать, сложно посоветовать что-то конкретное, можно только указать на недостатки приведенного кода в целом.
зачем навязывать мне свое мнение ?Что? Где я навязываю свое мнение? Я вам четко задал вопрос - что получится из конкретной переменной, которую вы описали? Остальное просто констатация фактов по конкретным местам вашего вопроса. Там нет никакого "мнения".
Мне необходимо сгенерировать и отправить на почту одновременно.Читается как "мне надо слепить пельмени и съесть их одновременно".
Сложность сгенерировать и отправить на почту одновременноЭто не делается одновременно. Сначала генерируете пдф, затем отправляете его по почте. В чем проблема?
Их много, и все они сопровождаются соответствующими предупреждениями. Например, указанный каталог не существует, права на него не позволяют запись, нет места на диске и еще куча вариантов сбоев.