как можно брать цифры в строке полученную из базы "1,5,7" засунуть их в переменные или как то еще лучше чтоб типа в цикле поставить на каждую цифру свои слова которые также в базе типа селект фрукты вере айди = 5; и так в цикле на каждую
Обычно такие вещи делаются на уровне базы данных, что позволяет:
Пример из реальной жизни (весьма обрезанный):
CREATE TABLE genres (
id int UNSIGNED NOT NULL,
name VARCHAR(50) NOT NULL COMMENT "Наименование жанра",
PRIMARY KEY (id)
) ENGINE=INNODB;
CREATE TABLE media_objects (
id int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
item_type enum("container", "element") NOT NULL DEFAULT "element" COMMENT "Тип элемента - контейнер, конечный элемент (передача)",
parent_id int UNSIGNED NULL DEFAULT NULL COMMENT "ID родительского элемента-контейнера",
epg_id bigint UNSIGNED NOT NULL COMMENT "ID оригинального элемента программы передач",
category_id tinyint UNSIGNED NOT NULL COMMENT "ID категории",
title varchar(255) NOT NULL COMMENT "Название",
desciption TEXT NOT NULL COMMENT "Описание",
episode int UNSIGNED NULL DEFAULT NULL COMMENT "Номер серии",
channel_id smallint UNSIGNED NULL DEFAULT NULL COMMENT "ID канала",
duration int UNSIGNED NOT NULL DEFAULT 0 COMMENT "Длительность",
) ENGINE=INNODB;
CREATE TABLE media_objects_genres (
media_object_id int UNSIGNED NOT NULL COMMENT "ID медиаобъекта",
genre_id int UNSIGNED NOT NULL COMMENT "ID жанра",
`order` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT "Порядок сортировки жанров для медиаобъекта",
FOREIGN KEY (media_object_id) REFERENCES media_objects(id) ON DELETE CASCADE,
FOREIGN KEY (genre_id) REFERENCES genres(id) ON DELETE CASCADE
) ENGINE=INNODB;
Таблица media_objects_genres в данном случае представляет нам связь типа "многие-ко-многим" между таблицей медиаобъектов ("фильмов") и справочником жанров, которых у "фильма" может быть и ни одного, и несколько. Запрос "получить все наименования жанров для фильма" выглядит примерно так:
SELECT b.name
FROM media_objects_genres AS a LEFT JOIN genres AS b ON (a.genre_id=b.id)
WHERE a.media_obect_id=123
ORDER BY a.`order`;
Такое хранение данных, например, позволяет также сделать и обратную выборку - всех фильмов по жанру - достаточно просто:
SELECT DISTINCT
b.id AS id,
b.title AS name
FROM media_objects_genres AS a LEFT JOIN media_objects AS b ON (a.media_object_id=b.id)
WHERE a.genre_id=5 AND b.item_type="element"
ORDER BY b.title;
а также и более сложные выборки данных по многим параметрам. Ведь именно для этого и создана СУБД, именно это и есть её "хлеб". Если уж использовать СУБД, то в чем смысл делать в программе кодом то, что лучше всего умеет делать именно СУБД?
P.S. "Если мне надо хранить жанры фильмов как я это сделаю? типа строка 1 жанр такой-то есть строка 2 жанр другой нет. типа так? – Gradusnik 1 час назад" - типа как-то так...
$a = getGeners(3);
$a=strtr($a,array(','=>''));
for($i = 0; $i <= iconv_strlen($a); $i++){
echo $a{$i}.'<br>';
}
вот ответ. сначала удаляем запятые, потом обращаемся к каждому элементу строки в цикле
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Доброго времени сутокНе знаю, стоило ли сюда писать весь код, но я думаю, так будет нагляднее(а может и нет) Есть такой код, он выполняет нужную...
Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах