Лучше всего хранить идентификаторы сайта, оптимизированные для SEO, или слагов , как они называются, рядом с фактическим названием вашего товара. Было бы трудно преобразовать слаг обратно в исходное название, поскольку некоторые символы теряются.
Сначала добавьте поле slug
к своей таблице items
и сделайте его уникальным, чтобы не было двусмысленности (поэтому у каждого элемента есть свой слаг).
Плагин генерируется всякий раз, когда элемент вставляется или обновляется, например:
$this->title = $_POST['title'];
$this->slug = url_title($this->title, 'dash', TRUE);
$this->db->insert('items', $this);
Если БД выдает исключение из-за «уникального» ограничения, вы можете попытаться вставить запись несколько раз и просто добавить число в слаг.
Затем вы можете легко найти элемент, используя слаг ($name
содержит часть URL, например davids-print
):
$this->data['item'] = $this->db->
get_where('items', array('slug' => $name))->result_array();
Благодарю Madmartigan за предложение использовать url_title
, который поставляется с CI.