2011-08-12 73 views
1

我有一个名为“设置”的数据库表,在该表中我有2列。示例图片:从单元格获取数据

enter image description here

正如你可以看到,第一列被称为 “SETTING_NAME”,第二个被称为 “setting_value”。

我该怎么办,所以每当我写的例子:

echo $setting['ad_cost_micro']; 

它会打印出:

0.00200 

顺便说一句。有没有可能做声明?

+0

截图不起作用,尝试上传到我都截图 – fire

+0

,但这是在一个while循环中完成。这不能避免吗?用于'mysql_ *'函数的 –

回答

1

我倾向于使用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循环(甚至for循环!)。

+0

感谢那些信息,我没有意识到这一点! 如何使用上面的代码snippit,这样$设置变量可以在我的所有页面上访问? –

+0

你可以将它存储在一个会话中,或者包含这段代码(在每一页上都使用'include_once()'或'require_once()' –

+0

但是,$ db变量怎么样?我们不能离开它,因为它给了我一个错误 –

0

无法看到的截图,但也许......

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

是更新微小的PIC –

+0

-1。 –

+0

@Rududo这有什么问题吗?我们对OP的安装一无所知,因此您不知道其他功能(例如:mysqli,PDO)是否可用。 – NullUserException

1

如果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

这个点有点不用while循环;) –

+0

是更好的? ;) – sammoore