За последние 24 часа нас посетили 34489 программистов и 1695 роботов. Сейчас ищут 719 программистов ...

Уважаемые знатоки. Обновление поля в mysql тут у меня беда.

Тема в разделе "PHP для новичков", создана пользователем gERYH, 24 июл 2014.

  1. gERYH

    gERYH Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    18
    Симпатии:
    1
    Уважаемые Разработчики, Девелоперы и прочие знатоки php и mysql. Такая задача у меня. Мне поручили сделать сайт и дали готовое БД. А там чёрт ногу сломит. Прошлый разработчик затянул сайт на движок "еврейский" и там к полю `images` возле имени картинки написан какой-то код который присвоил автоматом движок (GoCart) т.е -

    8107e0941fdbd74cc4472d44c98cd54b":filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true},"bccbc64992302dc4ee3b1117625602af":filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}

    И мне нужно убрать эту ошибку природы и оставить место неё - 8107e0941fdbd74cc4472d44c98cd54b .jpg (хотябы без расширения .jpg т.е. самые первые символы до знака " - *до верхних кавычек )

    Как это осуществить? Помогите пожалуйста.
    Вот код который я пытался вымутить, но результаты оказались не желаемыми.

    Код тестовый не пугайтесь.


    <?PHP

    $var = mysql_query("SELECT * FROM `gc_products` WHERE `images` LIKE '%.jpg%'",$link);

    while($row = mysql_fetch_array($var))
    {
    /*$pis = explode(".jpg", $row['images']);
    $a = end(explode(".jpg", $row['images']));
    $rest = substr($row['images'], 0, -1);
    var_dump(end(explode(".jpg", $row['images'])));
    echo '<br>';*/

    $print = explode(':',$row['images']);
    echo '<br>';

    $a = strstr($row['images'],',',true);
    echo $a[$i].'<br>';
    mysql_query ("UPDATE `gc_products` SET `images`='$a' WHERE `images` LIKE '%.jpg%'");

    }

    /*UPDATE `gc_products`
    SET `images` = REPLACE(`images`,'','')
    WHERE `images` LIKE '%%';*/

    ?>

    Меня конечно за такой код надо было уже давно спалить как Жанну Д`арк но всё же прошу вашей помощи.
    Добавлено спустя 3 минуты 26 секунд:
    Пробовал вот так

    $text = '8107e0941fdbd74cc4472d44c98cd54b":filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\ ....';
    $parent = "/.*:filename\":\"(?P<image_name>.*)\",\"alt.*/";
    preg_match($parent, $text, $result);
    echo $result['image_name'];

    выводится, но не то что хотелось. Вот это вывелось

    8107e0941fdbd74cc4472d44c98cd54b":filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true},"bccbc64992302dc4ee3b1117625602af":filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}

    А нужно чтоб вывелось вот это.

    8107e0941fdbd74cc4472d44c98cd54b":filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true},"bccbc64992302dc4ee3b1117625602af":filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}

    Помогите. Извините за тупые вопросы но мне очень надо.
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    а не проще через json_decode() распарсить?
     
  3. gERYH

    gERYH Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    18
    Симпатии:
    1
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    Пробовал, увидел только дюжину ошибок. Перевернул пол интернета но так ничего и не нашёл чтобы помогло в моей ситуации.
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    в вашем исходнике допущено очень много синтаксических ошибок, поэтом json_decode и не распарсивает вашу строку.

    в данном случае он дожен выглядеть хотя бы так:
    [{"8107e0941fdbd74cc4472d44c98cd54b":{"filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true}},{"bccbc64992302dc4ee3b1117625602af":{"filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}]

    и будет всё чудесно работать..
     
  5. gERYH

    gERYH Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    18
    Симпатии:
    1
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    А можете подсказать как же так правильно сформулировать запрос json_decode чтобы заработало?
    Вот я так сделал но ничего хорошего не получилось, ответ NULL:

    $json = '{"8107e0941fdbd74cc4472d44c98cd54b":{"filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true}},
    {"bccbc64992302dc4ee3b1117625602af":{"filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}';

    var_dump(json_decode($json));
    var_dump(json_decode($json, true));

    Ответ должен иметь вид: 8107e0941fdbd74cc4472d44c98cd54b.jpg а он меня "NULL'ами кормит".
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    для правильной работы с json_decode, нужно воспользоваться с json_encode в которую передаете свой объект, массив и прочее...
     
  7. gERYH

    gERYH Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    18
    Симпатии:
    1
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    Я пробовал но выдают всякие ошибки. А можете пожалуйста написать начальный код чтоб я знал от чего отталкиваться.
     
  8. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    если вы имеете ввиду исключительно ваш случай, то как я вам уже и говорил - допущено очень много синтаксических ошибок..
    И как мне кажется, что бы вам от них избавиться нужно будет поработать своими пальчиками и редактировать самому...

    Добавлено спустя 11 минут 46 секунд:
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня беда.
    для примера, берем вашу строку

    [{"8107e0941fdbd74cc4472d44c98cd54b":{"filename":"8107e0941fdbd74cc4472d44c98cd54b.jpg","alt":"\u0413\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA 100% L-Glutamine | \u0421\u043f\u043e\u0440\u0442 \u0435\u0434\u0430","caption":"\u041a\u0443\u043f\u0438\u0442\u044c \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA \u043f\u043e \u0441\u0430\u043c\u043e\u0439 \u043d\u0438\u0437\u043a\u043e\u0439 \u0446\u0435\u043d\u0435 \u0432\u043e \u0432\u0441\u0435\u0439 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","primary":true}},{"bccbc64992302dc4ee3b1117625602af":{"filename":"bccbc64992302dc4ee3b1117625602af.jpg","alt":"l \u0433\u043b\u044e\u0442\u0430\u043c\u0438\u043d BioTech USA | \u0421\u043f\u043e\u0440\u0442\u0438\u0432\u043d\u043e\u0435 \u043f\u0438\u0442\u0430\u043d\u0438\u0435 \u0432 \u0423\u043a\u0440\u0430\u0438\u043d\u0435","caption":"\u041a\u0443\u043f\u0438\u0442\u044c BioTech USA 100% L-Glutamine \u043f\u043e \u043e\u043f\u0442\u043e\u0432\u043e\u0439 \u0446\u0435\u043d\u0435"}}]

    передаем в json_decode и получаем ответ массив-объектов:
    Array
    (
    [0] => stdClass Object
    (
    [8107e0941fdbd74cc4472d44c98cd54b] => stdClass Object
    (
    [filename] => 8107e0941fdbd74cc4472d44c98cd54b.jpg
    [alt] => Глютамин BioTech USA 100% L-Glutamine | Спорт еда
    [caption] => Купить глютамин BioTech USA по самой низкой цене во всей Украине
    [primary] => 1
    )
    )

    [1] => stdClass Object
    (
    [bccbc64992302dc4ee3b1117625602af] => stdClass Object
    (
    [filename] => bccbc64992302dc4ee3b1117625602af.jpg
    [alt] => l глютамин BioTech USA | Спортивное питание в Украине
    [caption] => Купить BioTech USA 100% L-Glutamine по оптовой цене
    )
    )
    )
     
  9. gERYH

    gERYH Новичок

    С нами с:
    24 июл 2014
    Сообщения:
    18
    Симпатии:
    1
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    Вы имеете ввиду поисправлять пальчиками 700 товаров в таблице?
     
  10. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    это еще не так много, по сравнению с 5000 товарами..

    или искать другое решение - думаю найдется, если хорошо подумать...
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    буквальный ответ: вырезать значение filename можно простой регуляркой.

    но:
    1. подозреваю, что потерянные двойные кавычки в твоем примере это результат твоего вывода, а не реальные данные.
    2. ну уберешь ты типа лишнее из поля, следом тебе придется менять обработку этих данных в скрипте! и откуда будут браться атрибуты, которые ты выкинешь?
    не загоняешь ли ты сам себя в угол?
     
  12. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    <offtopic>вот нужен, нужен здесь лайк :)</offtopic>
     
  13. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе

    Надо обновить форум.