[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: преобразование данных из БД
Reh
Всем привет!

Получаю данные из БД и сразу передаю их в шаблон

Но есть небольшая проблема

В БД адрес фото хранится в таком виде - /cars/bitter/type-3/
Мне нужно привести к такому - bitter_type-3

Пришло на ум сделать перед передачей в шаблон так

$url = $request_compare_auto['url'];$url = substr($url, 6, -1); $url = strtr($url, '/', '_'); $request_compare_auto['url'] = $url;


Но мне кажется что это неправильное решение.
Подскажите как сделать правильней?
AllesKlar
Reh
Т.е. нужно всегда два последних компонента?

$bild   = 'path_to_default_bild';
$url = '/cars/typ_of_car/color_of_car/bitter/type-3/';

$arr = explode('/', trim($url, '/'));

if(count($arr) >= 2) {
$bild = $arr[count($arr)-2] . '_' . $arr[count($arr)-1];
}

echo $bild;



Цитата
Получаю данные из БД и сразу передаю их в шаблон

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

_____________
[продано копирайтерам]
volter9
Reh
Мне кажется что тебе следует хранить в БД уже готовую строку "bitter_type-3". Но если нужно именно в этом формате хранить, то можно сделать как то так:

$slug = '/cars/bitter/type-3/';

$url = trim($slug, '/');
$url = explode('/', $url);
$url = implode('_', array_slice($url, -2));

var_dump($url); // string(13) "bitter_type-3"


_____________
Мой блог
AllesKlar
volter9
А если ???
$slug = '/cars/';


И для чего вызывать 2 лишние функции, когда данные уже готовы?


_____________
[продано копирайтерам]
volter9
AllesKlar
ТС ничего не говорил о формате. Я предположил что всегда будет такой формат.
К стати, а причем здесь лишнии функции?

_____________
Мой блог
Invis1ble
Цитата (Reh @ 30.10.2015 - 22:07)
Подскажите как сделать правильней?

для начала нужно подробней описать, для чего эта строка хранится в БД именно в таком виде и зачем её преобразовывать в другой вид
а там, глядишь, и решение более оптимальное посоветуют

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

Ron
Цитата (AllesKlar @ 31.10.2015 - 02:09)
А вот так нельзя делать.

??? а что же с ними делать? Отсылать на проверку искусственному интеллекту? )))

Что значит похекают базу? На то плейсхолдеры и подготовленные запросы. Приведение к типу и прочие функции. Это должно быть ДО занесения в базу, а не после.

Или вы предлагаете гнать foreach по результату каждого запроса и проверять жутчайшими способами на бог весть какие паттерны!? )))

Reh
Цитата
для начала нужно подробней описать, для чего эта строка хранится в БД именно в таком виде и зачем её преобразовывать в другой вид
а там, глядишь, и решение более оптимальное посоветуют


Это бд автомобилей, там есть ссылка на фото, так же есть папка с фото, но все фото просто находятся в одной папке и имеют такие названия - audi_a6-allroad_i_group-wagon_5_001.jpg

А в БД это авто хранится так - /cars/audi/a6-allroad/i/group-wagon_5/

Цитата
Т.е. нужно всегда два последних компонента?


я все изображения перенес в папку /cars/, теперь нужно обрезать по краям символ "/",
и дописать номер фото и расширение.

Правильно понял что сначала нужно прогнать запрос через foreach,
отредактировать в нем данные, и только потом передавать в шаблон?
Цитата

Цитата
Получаю данные из БД и сразу передаю их в шаблон

А вот так нельзя делать.


Это не единственное место где я так сделал sad.gif
Мне нужно всегда полученные данные из БД сначала прогонять через foreach, проверять
на корректность и только потом в шаблон передавать?

Reh
Цитата
Мне кажется что тебе следует хранить в БД уже готовую строку "bitter_type-3"

БД уже есть, я ее только читаю
Invis1ble
тогда в твоем первом посте нормальное решение
но я бы прошелся скриптом по всем картинкам и расфасовал их по соответствующим путям

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

AllesKlar
Цитата (Ron @ 31.10.2015 - 07:50)
Цитата (AllesKlar @ 31.10.2015 - 02:09)
А вот так нельзя делать.

??? а что же с ними делать? Отсылать на проверку искусственному интеллекту? )))

Что значит похекают базу? На то плейсхолдеры и подготовленные запросы. Приведение к типу и прочие функции. Это должно быть ДО занесения в базу, а не после.

Или вы предлагаете гнать foreach по результату каждого запроса и проверять жутчайшими способами на бог весть какие паттерны!? )))

- да
- да
- да
Подробности уже за деньги.

_____________
[продано копирайтерам]
Reh
Цитата
но я бы прошелся скриптом по всем картинкам и расфасовал их по соответствующим путям


Наверное так и поступлю, в дальнейшем проще будет!
Надо теперь этот скрипт придумать smile.gif
Спасибо за совет!
Ron
Цитата (AllesKlar @ 31.10.2015 - 17:44)
Подробности уже за деньги.

И сколько заплатишь, чтобы я это слушал? wink.gif

AllesKlar
Ron
Нисколько. Обсуждение взлома выходит за рамки данного форума, так что пиши как можешь.

_____________
[продано копирайтерам]
Ron
Цитата (AllesKlar @ 31.10.2015 - 22:42)
Нисколько. Обсуждение взлома выходит за рамки данного форума, так что пиши как можешь.

Спасибо, что разрешаешь. Как бы я без твоего благословления дальше-то жил? Ужас-кошмар.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.