从db表获取数组

时间:2011-09-26 15:14:33

标签: php mysql arrays

我的MySQL数据库表看起来像

varname | lang1


var1 sample1

var2 sample2

我想在此表中创建名为$data的数组,其中$data['var1']将为sample1

我知道功能可行。但它将是服务器的额外负载:对于每个调用函数将查询db表。有没有办法一次性获得所有?

更新 现在,我的代码看起来像那样

<?php 
$pgdata=$db->query("SELECT name, $lang AS expression FROM lang WHERE class='calc'") or die($db->error);
$calc = array();
while ($row = $pgdata->fetch_object()) $calc[$row->name] = $row->expression;
?>

4 个答案:

答案 0 :(得分:1)

<强>固定

// Get all records from the database
if (!$result = mysql_query("SELECT * FROM `table` ORDER BY `varname`")) 
  exit("Something went wrong with the query...");
// Put records into array in the right format
$data = array();
while ($row = mysql_fetch_assoc($result)) $data[$row['varname']] = $row['lang1'];

print_r($data);

答案 1 :(得分:0)

这就是fetch_assoc()所做的:mysqli version

答案 2 :(得分:0)

如果你想要一个关联数组,你需要将结果作为关联来获取,例如:

mysql_fetch_assoc()

http://es.php.net/manual/en/function.mysql-fetch-assoc.php

如果使用mysqli:

mysqli_fetch_assoc()

http://es.php.net/manual/en/mysqli-result.fetch-assoc.php

如果使用PDO:

pdo::fetch(PDO::FETCH_ASSOC);

答案 3 :(得分:-1)

只需查询表格并使用mysqli_fetch_array()或类似功能获取结果。查询只会执行一次,因此对数据库服务器来说没有“额外负载”。