PHP MySQL获取表的结果和列名

PHP MySQL获取表的结果和列名,php,mysql,sql,pivot-table,Php,Mysql,Sql,Pivot Table,我总是得到数据库的结果,但从来没有得到列名,现在我遇到了一种情况,我需要同时得到列名和结果 我有一个简单的代码,显示列名,并在其旁边显示结果,其中结果为=1 假设我的桌子是这样的 | Science | Maths | Biology | English | --------------------------------------------------------- | 1 | 0 | 0 |

我总是得到数据库的结果,但从来没有得到列名,现在我遇到了一种情况,我需要同时得到列名和结果

我有一个简单的代码,显示列名,并在其旁边显示结果,其中结果为=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之类的内容

我的方法

 $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++;
}

实现这一点的最佳方法可能是获取关联数组并使用其键。从您的示例来看,您似乎总是希望得到一个结果行,但为了防止出现问题,我还是会添加一个
限制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;

请注意,
mysql.*
函数已被弃用。你应该使用or。你可以比较一下

你想像MS Access那样进行交叉查询吗?这是什么?你注意到他尝试的查询不会产生任何结果吗?您获取结果的原因是什么?确实,谢谢,我知道mysqli。但我想要的是能够将列名放入数组中,这样我就可以使用$row['column_name'];
$result = mysql_query("SELECT * FROM trophy WHERE username = '$searchuser' LIMIT 1");
$result = mysql_fetch_assoc($result);
foreach ($result as $name => $value)
  echo $name . '-' . $value;