Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » MySQL » Ссылка на аватарку и запрос к бд

Ссылка на аватарку и запрос к бд


     04.03.2014    Все вопросы » MySQL    3298

вопрос
Скажите пожалуйста, можно-ли сделать запрос к бд что-бы в ссылке на аватарку вырезалась часть ссылки, например вот можно сделать что-бы из ссылок на автарку пользователя вырезалась вот эта часть ссылки http://адрес сайта/ava/avatari/ ?

Сейчас у многих пользователей ссылки на автарку идут такого вида http://адрес сайта/uploads/fotos/http://адрес сайта/ava/avatari/9541.jpg а мне нужно удалить вот эту часть ссылки http://адрес сайта/ava/avatari/

Заранее большое спасибо за ответ.

Ответил: D0Gmatist



$url = "http://домен.ру/uploads/fotos/foto_1.jpg"

$urlObrezan = str_replace("http://домен.ру/uploads/fotos/", "", $url);

echo $urlObrezan;


итог foto_1.jpg

19 комментариев

Gopr
Юзер

Gopr - 4 марта 2014 21:41 -

В роде как по умолчанию src="/uploads/fotos/foto_1.jpg" или у вас не dle?

edik8305
Юзер

edik8305 - 4 марта 2014 22:06 -

У меня dle, вывожу аватарку тегом {foto}, но дело в том что у многих пользователей ссылки на аватурку идут такого вида http:// адрес сайта/uploads/fotos/http://адрес сайта/ava/avatari/9541.jpg По каким причинам у меня получились такие ссылки не имеет значения, мне главное удалить часть ссылки которую я указал в вопросе!

Можно так сделать?

JacobClyne
Юзер

JacobClyne - 4 марта 2014 22:16 -

edik8305, смотри в файлах которые ты изменил.

edik8305
Юзер

edik8305 - 5 марта 2014 00:23 -

Если вы не поняли вопроса то прошу не отвечать! Файлы движка к бд не причем, именно в базе данных в разделе пользователей в столбце где записывается путь к аватарки идет такая ссылка, мне нужно запросом к базе данных удалить часть ссылки которую я укажу. Почему я не сделаю это вручную, да потому-что пользователей много и зачем делать вручную если можно одним запросом сделать так как мне нужно.

edik8305
Юзер

edik8305 - 5 марта 2014 00:47 -

D0GMATIST, Попробовал и что-то не получается, ошибку выбивает при выполнение запроса.

nambo1
Юзер

nambo1 - 5 марта 2014 00:52 -

edik8305,
он не sql запрос кинул, это скрипт который выводит нужную тебе ссылку

edik8305
Юзер

edik8305 - 5 марта 2014 00:54 -

А не могли бы вы мне пожалуйста сказать, как сделать нужный мне запрос?

D0Gmatist
Юзер

D0Gmatist - 5 марта 2014 01:02 -

1 ) Подсчитываем всех юзеров в БД и пропускаем всю таблиу в цикле через while
2) Где обрабатываем урл на фото из поля foto и возвращаем назад в бд по ид
$db->query("SELECT SQL_CALC_FOUND_ROWS user_id, foto, COUNT(*) AS count FROM " . PREFIX . "_users GROUP BY `user_id` ORDER BY `user_id` ");

while($row = $db->get_row()){

    $url = $row['foto'];
    $idUpdate= $row['user_id'];
    $urlObrezan = str_replace("http://домен.ру/uploads/fotos/", "", $url);
    $db->query( "UPDATE " . PREFIX . "_users SET foto = '$urlObrezan' WHERE user_id='$idUpdate'" );

}
$db->free();

edik8305
Юзер

edik8305 - 5 марта 2014 01:17 -

Не работает ошибку выбивает!

D0Gmatist
Юзер

D0Gmatist - 5 марта 2014 01:27 -

Вы это куда вписываете .. это не в пхпАдминке надо пользовать

edik8305
Юзер

edik8305 - 5 марта 2014 02:18 -

Я запрос к базе данных делал!

ПафНутиЙ
Админ

ПафНутиЙ - 5 марта 2014 09:35 -

Вы бы для начала посмотрели как хранится аватар в БД - многое встанет на свои места.
SELECT user_id, foto FROM `dle_users` WHERE foto <> ''

Цитата: JacobClyne
edik8305, смотри в файлах которые ты изменил.

самый правильный комментарий на самом деле, т.к. код вывода ссылки на аватар располагается в php файлах.

Каков вопрос - таков и ответ. Просто помните об этом.

edik8305
Юзер

edik8305 - 5 марта 2014 18:20 -

Цитата: ПафНутиЙ
Вы бы для начала посмотрели как хранится аватар в БД - многое встанет на свои места.

Я посмотрел и ссылка на аватар в бд у многих пользователей идет такого вида http://адрес сайта/ava/avatari/название картинки.jpg в итоге выходит при выводе аватарке тегом {foto} вот такая ссылка http://адрес сайта/uploads/fotos/http://адрес сайта/ava/avatari/название картинки.jpg

ПафНутиЙ
Админ

ПафНутиЙ - 5 марта 2014 19:34 -

Значит она не правильно добавляется в БД, т.к. по умолчанию там хранится имя файла аватарки.

Каков вопрос - таков и ответ. Просто помните об этом.

edik8305
Юзер

edik8305 - 5 марта 2014 19:53 -

Добавляется ссылка на аватарку правильно, не правильные ссылки на аватарку стоят у тех пользователей которые были перенесены с ucoz'a.

ПафНутиЙ
Админ

ПафНутиЙ - 5 марта 2014 20:09 -

а отобрать одним запросом все юзеров с неправильными данными и скопировать в блокнот, заменить руками и вставить обратно в БД, что мешает?

Каков вопрос - таков и ответ. Просто помните об этом.

edik8305
Юзер

edik8305 - 6 марта 2014 04:01 -

Скажите пожалуйста, какой нужно сделать запрос что-бы отобрать пользователей по определенный информации?

D0Gmatist
Юзер

D0Gmatist - 6 марта 2014 11:32 -

UPDATE `dle_users` SET `foto`=REPLACE(`foto`,'ТЕКСТ_КОТОРЫЙ_ИЩЕМ','ОСТАВИТЬ_ПУСТЫМ_ЧТОБЫ_УДАЛИТЬ_ИСКОМЫЙ');


ПРИМЕР
UPDATE `dle_users` SET `foto`=REPLACE(`foto`,'http://адрес сайта/ava/avatari/','');


Только не забудьте создавать резервную копию БД

edik8305
Юзер

edik8305 - 7 марта 2014 00:00 -

Большое спасибо, очень помогло мне. А можно сделать такой запрос что-бы ссылка удалилась при нахождение определенного текста в ней, например есть вот такая ссылка http://тут ид.uid.me/avatar.jpg и таких ссылок к сожалению тоже много, можно указать что-бы ссылка заменилась на noavatar.png из бд какой бы там ид не был?

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

 02.05.2014 kaster1980  MySQL
наверх