2009-08-07 61 views
1

列名命名的变量,这个代码选择在MySQL中单元格的值,并手动将其添加到PHP变量:如何把MySQL的单元格的值到PHP

$sql = "SELECT * FROM table LIMIT 0,1"; 
$result = mysql_query($sql); 
while($rows = mysql_fetch_array($result)) { 
    $col1 = $rows['col1']; 
    $col2 = $rows['col2']; 
    $col3 = $rows['col3']; 
    ..... 
} 

这是多和大表显然难以管理。

什么是更好的方式来自动生成变量名称和值,而无需手动输入所有表上的所有列名?

+2

为什么你想有针对每一列数组元素的创建为每列一个变量,而不是? – VolkerK 2009-08-07 07:06:32

回答

2

我认为这是你在找什么

$sql = "SELECT * FROM table LIMIT 0,1"; 
$result = mysql_query($sql); 
while ($rows = mysql_fetch_array($result, MYSQL_ASSOC)) { 
    foreach ($rows as $key => $value) { 
     $$key = $value; 
    } 
} 
2

联想数组不是更方便吗?这样,你可以在你描述的时候用你的列名称来调用你的变量,而且你有把它们捆绑在一个单元中的好处,如果你需要将它们中的多个函数传递给任何函数或视图,

所以我会用mysql_fetch_assoc就是这样。

3

您可以使用extract()。但我会保持数组中的值。

..SELECT x,y,z FROM .. 
while(false!==($rows=mysql_fetch_array($result, MYSQL_ASSOC))) { 
    extract($rows); 
    echo $x; 
    ... 
} 
1

我不推荐其为每行一个变量,我以前做的一样,以简化后写HTML:

echo "<tr><td>$name</td><td>$count</td></tr>"; 

相反的:

echo "<tr><td>{$row['name']}</td><td>{$row['count']}</td></tr>"; 

直到我找到更好更可读的方式使用mysql_fetch_object

while ($row = mysql_fetch_object($result)) { 
    : 
    echo "<tr><td>{$row->name}</td><td>{$row->count}</td></tr>"; 
    : 
} 
相关问题