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

2 回答 2

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;

请注意,这些mysql_*功能已被弃用。您应该使用mysqli_*orPDO代替。你可以在这里比较它们。

于 2013-10-31T20:01:31.770 回答
0
while ($row = mysql_fetch_array($result, **MYSQL_BOTH**)) {
    printf ("ID: %s  Name: %s", $row[0], $row["name"]);
}

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

于 2013-10-31T20:00:54.843 回答