2009-08-07 19 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>"; 
    : 
} 
相關問題