Последние темы


Запись в базу кирилицой

  • возникла необходимость выгрузки заказов из базы, но обнаружилась вот такая ситуация, в таблице shopkeeper3_purchases в столбцах data и options русские символы выглядят вот так:

    \u0422\u0426 \u0414\u0437\u0435
    

    Если правильно понимаю это коды юникода. Как сделать что бы в базу записывались нормальные символы вместо кодов юникода?

  • Это JSON. Переводится в массив функцией php.net/json_decode

  • А как сделать так, что бы сразу записывалось в базу кириллицей?

  • Никак или пиши свой псевдо JSON

    $name = 'Вася';
    $myJSON = "{'name':'$name'}";
    

    И так далее...

  • Помогите разобраться, пытаюсь вывести строку с базы и перевести функцией json_decode, но в итоге получаю пустоту

    $sql = "SELECT options FROM modx_shopkeeper3_purchases where id = 65";
    $json = mysqli_query($connection, $sql) or die("Ошибка запроса: " . mysqli_error($connection));
    while ($row = mysqli_fetch_assoc($json)) {
        $returnValue = json_decode($row,true);
        echo ($returnValue);
    }
    

    есть мнение, что записи в базе не utf8, т.к. при попытке получить просто пару строк:

    $sql = "SELECT id, name FROM modx_shopkeeper3_purchases where id = 65";
    $json = mysqli_query($connection, $sql) or die("Ошибка запроса: " . mysqli_error($connection));
    while ($row = mysqli_fetch_assoc($json)) {
        echo $row['id'];
        echo $row['name'];
    }
    

    Получаю вот это: 65 ▒▒▒▒▒▒

    Что конкретно делаю не так?

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

  • Попробуй так с помощью iconv

    $sql = "SELECT id, name FROM modx_shopkeeper3_purchases where id = 65";
    $json = mysqli_query($connection, $sql) or die("Ошибка запроса: " . mysqli_error($connection));
    while ($row = mysqli_fetch_assoc($json)) {
        $row= iconv('Windows-1251','UTF-8',  $row);
        echo $row['id'];
        echo $row['name'];
    }
    
  • В JSON только две колонки "data" и "options".

    $row['data'] = json_decode($row['data'], true);
    $row['options'] = json_decode($row['options'], true);
    
  • Спасибо всем за помощь, скидываю скрипт, может кому пригодится

    <?php
    $db=mysql_connect("localhost","user","pass") or die ('Ошибка подключения к бд');
    mysql_select_db("database") or die ("База данных не найдена");
    mysql_query("set_client='utf8'",$db);
    mysql_query("set character_set_results='utf8'",$db);
    mysql_query("set collation_connection='utf8_general_ci'",$db);
    
    $result=mysql_query("SELECT o.id,p.name,p.data,o.price,p.options,o.contacts FROM `modx_shopkeeper3_orders` as o LEFT JOIN `modx_shopkeeper3_purchases` as p on `o`.`id`=`p`.`order_id`",$db);
    $file_name=__DIR__.DIRECTORY_SEPARATOR.'export_'.date('Y_m_d_H_i_s').'.txt';
    if($result){
    	$handle=fopen($file_name,'w+');
    	while($row=mysql_fetch_assoc($result)){
    		$params=json_decode($row['options'],true);
    		$data=json_decode($row['data'],true);
    		$contacts=prepareContacts(json_decode($row['contacts'],true));
    		$txt=$row['id'].','.$row['name'].','.$data['weight'].','.$params['param1']['4'].','.$data['articul'].','.$row['price'].','.$contacts['fullname'].','.$contacts['phone'].','.$contacts['email'].'\r\n';
    		fwrite($handle,$txt);
    	}
    	fclose($handle);
    }
    
    function prepareContacts($contacts){
    	$result=[];
    	foreach($contacts as $field){
    		$result[$field['name']]=$field['value'];
    	}
    	return $result;
    }
    ?>
    
 

Последние комментарии

  • Что нового в Shopkeeper 4.0.3:

    Исправлено некорректное определение языка по умолчанию В настройках в админке скрываются пароли. Добавлена возможность загружать картинки для категорий. shopkeeper.js - добавлена функция updateProductsPrice() для поддержки текстовых полей для цены. Twig-функции contentList() и includeContent() вынесены в отдельный класс. Добавлено событие "order.before_create". Сортировка всех полей типа контента перетаскиванием. Автоматическое сохранение сортировки полей при сохранении типа контента (не нужно нажимать на отдельную кнопку). В интерфейсе админа добавлено поле поиска для списка Composer-пакетов.

    Скачать можно на главной странице https://modx-shopkeeper.ru/

    Читать далее
  • Вот этот плагин:
    0_1550334109280_screenshot_022.png

    Вроде по умолчанию он выключен. Надо включить. Но плагин работает только на редактирование товаров, при удалении он делалать ничего не будет. Только что проверил кнопку, всё работает корректно, фильтры удаляются и добавляются, когда нужно. Но нужно очищать корзину после удаления товаров (возможно баг).

    Читать далее
  • J

    @Andchir Если нажимаю кнопочку "Обновить значения", то в фильтрах появляются как раз те самые удаленные значения фильтра.. Потом приходится Ручками выбирать эти удаленные значения.
    вот так выглядит Управление фильтрами когда удаляешь ручками: https://yadi.sk/i/_zw64CGkZ_sAYg
    А вот так выглядит когда просто нажимаешь "Обновить значения": https://yadi.sk/i/7WFbXC6xV5sQAw (красным выделено, то что приходится постоянно удалять

    Читать далее
  • J

    Участник @Jokerit написал в TagManager2 отображает в фильтре удаленные значения TV-полей:

    tmRefresh

    Так и не смог найти как включить

    Читать далее