Уважаемые Разработчики, Девелоперы и прочие знатоки 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"}} Помогите. Извините за тупые вопросы но мне очень надо.
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе а не проще через json_decode() распарсить?
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе Пробовал, увидел только дюжину ошибок. Перевернул пол интернета но так ничего и не нашёл чтобы помогло в моей ситуации.
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"}}] и будет всё чудесно работать..
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'ами кормит".
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе для правильной работы с json_decode, нужно воспользоваться с json_encode в которую передаете свой объект, массив и прочее...
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе Я пробовал но выдают всякие ошибки. А можете пожалуйста написать начальный код чтоб я знал от чего отталкиваться.
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 по оптовой цене ) ) )
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе Вы имеете ввиду поисправлять пальчиками 700 товаров в таблице?
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе это еще не так много, по сравнению с 5000 товарами.. или искать другое решение - думаю найдется, если хорошо подумать...
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе буквальный ответ: вырезать значение filename можно простой регуляркой. но: 1. подозреваю, что потерянные двойные кавычки в твоем примере это результат твоего вывода, а не реальные данные. 2. ну уберешь ты типа лишнее из поля, следом тебе придется менять обработку этих данных в скрипте! и откуда будут браться атрибуты, которые ты выкинешь? не загоняешь ли ты сам себя в угол?
Re: Уважаемые знатоки. Обновление поля в mysql тут у меня бе <offtopic>вот нужен, нужен здесь лайк </offtopic>