Как заполнить массив из БД

Статус
В этой теме нельзя размещать новые ответы.
Мне не нужен ассоциативный массив с параметром. Так мне каждый раз надо будет задавать ему какое поле мне вывести, а мне нужен один глобальный массив в котором будут все настройки сразу и обращение к БД будет длеатся один раз, а дальше я беру из массива.
Ну ты же итак хотел задавать поле для вывода:
PHP:
$config['site_title']
Функция также будет обрабатываться один раз, при выполнении:
PHP:
$query = mysql_query("SELECT * FROM `config`");
$config = mysql_fetch_assoc($query);
И всё. плюс в случае косяка легче в базе данных разобраться будет.
Единственный минус будет в том, что все переменные нужно будет придумать сразу при создании базы данных, зато есть и плюс, что эти переменные можно сделать как ты и хочешь мультифункциональными. Сделать еще одно поле "id", и уже можно сохранять десятки одинаковых конфигов.
А изменить потом всего одну строчку:
PHP:
$id = 1;
$query = mysql_query("SELECT * FROM `config` WHERE `id`=1");
$config = mysql_fetch_assoc($query);
 
Все таки я не как не могу понять, если ты используешь ассоциативный массив, то МСКЛ запрос должен выглядеть так:
PHP:
$query = mysql_query("SELECT * FROM `setting` WHERE set_id = '2'");
$config = mysql_fetch_assoc($query);
echo $config['set_name']."  =>  ".$config['set_value'];
и на выводе я получу:
С изменением параметра set_id в запросе мне будет приходить другое название настройки и ее значения. И, как я понимаю, здесь я не как не смогу использовать структуру $config['set_title']; (set_title - находится в столбце set_name) для получения значения этой строки из столбца set_value.
Если я выведу все название настроек из столбца set_name и соответствующие им значения из столбца set_value и потом запихну их в массив:
PHP:
$setting = array(
    столбец set_name => столбец set_value
);
и потом просто буду выборочно брать настройки используя нужную мне схему $setting['любое значение в столбце set_name']; (например $setting['set_title'];). Почему не кто не может написать как это правильно записать PHP кодом?
 
Решение нашлось.

PHP:
$query = mysql_query("SELECT * FROM `setting`");
$config = array();
while($setting = mysql_fetch_array($query)){
	$set_name = $setting['set_name'];
	$set_value = $setting['set_value'];
	$config[$set_name] = $set_value;
}
Чтобы заполнять массив, надо перед циклом while его объявить:
PHP:
$setting = array()
;
А потом дописывать в него данные:
PHP:
$setting[$set_name] = $set_value;
Если $setting[$set_name] не существовало, то оно будет создано. Если существовало - будет перезаписано. В результате получится такой массив:
PHP:
$setting : ['name1'=>'value1', 'name2'=>'value2']
И к нему можно будет обращаться как $setting['name1'] и получить 'value1'

Что-то нуллен совсем стал не серьезным=( Помощи ждал здесь ужасно долго и в итоге пришлось напрягать через знакомых людей, что бы те помогли, что меня огорчает.:mad:
 
Вариант конечно интересный, но хранить все настройки в базе для маленького сайта впринципе не страшно но выводить их в один массив считаю не актуальным для текущего времени...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху