Получение данных из ячейки - PullRequest
1 голос
/ 12 августа 2011

У меня есть таблица базы данных под названием «настройки», и в этой таблице у меня есть 2 столбца. Пример картинки:

enter image description here

Как видите, первый столбец называется " setting_name ", а второй - " setting_value ".

Как я могу это сделать, поэтому всякий раз, когда я пишу пример:

echo $setting['ad_cost_micro'];

Будет распечатано:

0.00200

Btw. можно ли обойтись без оператора while ?

Ответы [ 3 ]

1 голос
/ 12 августа 2011

Я склонен использовать PDO, а fetchAll().

$stmt = $db->prepare('SELECT `setting_name`, `setting_value` FROM `settings`');
$stmt->execute();
$setting = $stmt->fetchAll();
echo $settings['ad_cost_micro']; //Should output 0.00200.

Примечание: Независимо от того, что вы используете, цикл while неизбежен , потому что вам НЕОБХОДИМО выполнить цикл по результирующему набору (fetchAll()), что также делает то, что каждый цикл является циклом while (даже для петель!).

1 голос
/ 12 августа 2011

если mysqli доступен ...

$mysqli = new mysqli(hostname, username, password, database);
$result = $mysqli->query('SELECT setting_name,setting_value FROM settings');

if ($result->num_rows > 0)
{
    $rows = $result->fetch_array();
    $setting = array();
    for($i = 0; $i <= $result->num_rows(); $i++)
    {
        $setting[$rows[$i]['setting_name']] = $row[$i]['setting_value'];
    }

    unset($rows);
    $result->free();
}
else
{
    // error handling
}

$mysqli->close();

РЕДАКТИРОВАТЬ: удалено вместо

0 голосов
/ 12 августа 2011

Не могу видеть скриншот, но возможно ...

    $query = mysql_query("SELECT * FROM settings");
    while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
        $setting[$row['setting_name']] = $row['setting_value'];
    }
...