我一直在获取数据库的结果,但从不获取列名,现在我遇到了我需要列名和结果的情况。
我有一个简单的代码,显示列名称,并在其旁边显示结果为= 1的结果。
所以让我们说我的桌子看起来像这样
| Science | Maths | Biology | English |
---------------------------------------------------------
| 1 | 0 | 0 | 1 |
所以基本上我要找的是像
Table Name | Results
---------------------------------
Science | 1
English | 1
我在网上搜索并找到了INFORMATION_SCHEMA.COLUMNS的用法,但这似乎并不像我想要的那样工作。我不知何故需要包括INFORMATION_SCHEMA.COLUMNS以及select * WHERE user = $ user kinda stuff。
我的方法。
$i = 0;
$result = mysql_query("SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'trophy' WHERE UPPER(username) = UPPER('$searchuser')");
while($row = mysql_fetch_array($result))
{
echo $row['COLUMN_NAME'];
echo '-'
echo $row[$i];
$i++;
}
答案 0 :(得分:1)
解决此问题的最佳方法可能是获取关联数组并使用其键。从您的示例看,您似乎总是希望获得1个结果行,但为了防止出现问题,我将添加LIMIT 1
。你可以这样做:
$result = mysql_query("SELECT * FROM trophy WHERE username = '$searchuser' LIMIT 1");
$result = mysql_fetch_assoc($result);
foreach ($result as $name => $value)
echo $name . '-' . $value;
答案 1 :(得分:0)
while ($row = mysql_fetch_array($result, **MYSQL_BOTH**)) {
printf ("ID: %s Name: %s", $row[0], $row["name"]);
}