2012-03-22 4 views
0

Я пытаюсь получить определенное значение из массива mysql_fletch_assoc. Я объясняю. Вот база данных. Таблица: config с 2 полях: установка и значение.Отображение значения массива

SETTING | VALUE 
width | 100  
height | 50 

И это запрос:

$result = (mysql_query("SELECT setting, value FROM config")); 
while($setting = mysql_Fetch_assoc($result)){ 


    echo $setting['value']; 
    echo "<br>"; 

Теперь я могу видеть весь массив. Я хочу отображать каждый элемент по отдельности. Я попытался установить $ setting ['value'] ['0'], $ setting ['value'] ['width'] без успеха.

Edit: в основном я хочу сделать что-то вроде этого:

echo $setting['value']['width'] gives -> 100 
echo $setting['value']['height'] gives -> 50 

Я надеюсь, что теперь это более ясно

+0

Сделайте 'var_dump ($ setting)', чтобы узнать, что находится в массиве. Может быть, '$ setting ['VALUE']'? – deceze

+0

Конфигурация и значения - что? Названия таблиц или полей таблицы? Не могли бы вы лучше показать стол? – Shoe

+2

Меня не волнует, что вам сказал учебный сайт, не используйте расширение 'mysql'. **Когда-либо**. Используйте 'PDO' или' mysqli'. Пожалуйста, обратитесь: http://marc.info/?l = php-internals & m = 131031747409271 & w = 2 – rdlowrey

ответ

2

Во-первых, может быть ошибка опечатки mysql_Fetch_assoc, исправить это до mysql_fetch_assoc.

И Для того, чтобы получить значение вашей модели, выполните следующие действия

$setting = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $setting['value'][$row['setting']] = $row['value']; 
} 

Теперь вы можете реализовать их, как вы хотите

echo $setting['value']['width']; // will give -> 100 
echo $setting['value']['height']; // will give -> 50 
+0

Я хочу, чтобы я использовал font-size = 10 сказать БОЛЬШОЕ СПАСИБО! Ваш код идеален! – user1274113

0

индексы массива являются целыми числами, а не строки:

$setting['value'][0] 
+0

Да, я тоже пробовал с [0], но с этим я получаю первый символ каждой записи массива (и я не понимаю почему). – user1274113

0

Я думаю, вы пытаетесь сделать что-то вроде этого:

$result = (mysql_query("SELECT setting, value FROM config")); 
while($row = mysql_fetch_assoc($result)){ 
    echo $row['setting']; 
    echo "<br>"; 
    echo $row['value']; 
    echo "<br>"; 
} 
+0

Нет. Взгляните на пример db, который я разместил выше. Я просто хочу получить 100 и 50 в двух отдельных переменных, скажем: $ row ['setting'] ['width'] = 100 и $ row ['setting'] ['height'] = 50 – user1274113

0

Что значит «каждый элемент»? В то время как цикл $ настройки содержит один возвращается строку:

Первый цикл:

$setting = array('config' => 'width', 'value' => 100); 

Второй контур:

$setting = array('config' => 'height', 'value' => 50); 

(NB: mysql_fetch_assoc должна быть лучше написана с малым е)

0

Ну, учитывая то, что Старк просто указал, Я бы предложил вам проверить структуру таблицы. У вас может быть такая табличная структура

Width | Height 
200 | 150 

Таким образом, вы всегда можете получить оба запроса с одним запросом. Я угадываю какой-то идентификатор для объекта с этими свойствами, и я не думаю, что в этом случае было бы разумно иметь свойства в разных строках в базе данных.

Смежные вопросы